FIO 硬碟測試

2021-06-21 02:55:02 字數 2346 閱讀 9898

一,fio安裝

wget 

yum install libaio-devel

tar -zxvf fio-2.0.7.tar.gz

cd fio-2.0.7

make

make install

二,fio用法:

隨機讀:

fio -filename=/dev/sda3 -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=200g -numjobs=10 -runtime=1000 -group_reporting -name=zhouxue

說明:filename=/dev/sdb1       測試檔名稱,通常選擇需要測試的盤的data目錄。

direct=1                 測試過程繞過機器自帶的buffer。使測試結果更真實。

rw=randwrite             測試隨機寫的i/o

rw=randrw                測試隨機寫和讀的i/o

bs=16k                   單次io的塊檔案大小為16k

bsrange=512-2048         同上,提定資料塊的大小範圍

size=5g    本次的測試檔案大小為5g,以每次4k的io進行測試。

numjobs=30               本次的測試執行緒為30.

runtime=1000             測試時間為1000秒,如果不寫則一直將5g檔案分4k每次寫完為止。

ioengine=psync           io引擎使用pync方式

rwmixwrite=30            在混合讀寫的模式下,寫佔30%

group_reporting          關於顯示結果的,彙總每個程序的資訊。

此外

lockmem=1g             只使用1g記憶體進行測試。

zero_buffers             用0初始化系統buffer。

nrfiles=8                  每個程序生成檔案的數量。

iodepth = 64            每個檔案io佇列長度

bssplit = 512/20:1k/20:2k/10:4k/40:8k/10        // 20%512b,20%1k,10%2k,40%4k,10%8k

順序讀:

fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=200g -numjobs=30 -runtime=1000 -group_reporting -name=mytest

隨機寫:

fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=200g -numjobs=30 -runtime=1000 -group_reporting -name=mytest

順序寫:

fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=200g -numjobs=30 -runtime=1000 -group_reporting -name=mytest

混合隨機讀寫:

fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=200g -numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop

global選項中設定了direct=1。將direct設定為1時,使用的就direct i/o。未指定時,就等同於direct=0(經由一般頁面快取進行i/o)。

readjob作業中使用size設定i/o操作的大小(位元組數)。字尾m表示兆位元組。字尾可以使用k、m、g、t、p。readjob作業的程序在進行了size所設定的大小的i/o後就會結束。 \

fio任務配置裡面有幾個點需要非常注意:

1. libaio工作的時候需要檔案direct方式開啟。

2. 塊大小必須是扇區(512位元組)的倍數。

3. userspace_reap提高非同步io收割的速度。

4. ramp_time的作用是減少日誌對高速io的影響。

5. 只要開了direct,fsync就不會發生。

硬碟效能測試工具fio

fio是測試磁碟效能的乙個非常好的工具,用來對硬體進行壓力測試和驗證。建議使用libaio的i o引擎進行測試,請使用者自行安裝fio和libaio。不同場景的測試公式基本一致,只有3個引數 讀寫模式,iodepth,blocksize 的區別。下面舉例說明使用block size為4k,iodep...

FIO效能測試

fio引數中,ioengine使用libaio,併發jobs數固定為1,通過iodepth來控制壓力。分別測試隨機讀 隨機寫,作為讀寫的效能基準。不測試順序讀寫,不測試混合讀寫。1 測試iops峰值 iodepth 128,塊大小4k。隨機讀 fio direct 1 iodepth 128 rw ...

Linux 環境下 硬碟讀寫速度測試之FIO

安裝fio 如果ioengine找不到軟體包,按說明操作 fio 命令不需要磁碟掛載。乙個磁碟經過fio 命令以後,再用就需要重新分割槽,掛載。fio 命令感覺是把磁碟格式化過一遍。多次測試fio 也對磁碟有傷害。指令 注意 nvme0n1的目錄 fio filename dev nvme0n1 d...