硬盤測試——fio

fio(Flexible IO Tester) FIO是測試IOPS的很是好的工具,用來對硬件進行壓力測試和驗證,支持13種不一樣的I/O引擎, 包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等。ios

參數說明:工具

filename=/dev/sdb1   #測試文件名稱,一般選擇須要測試的盤的data目錄
direct=1             #測試過程繞過機器自帶的buffer。使測試結果更真實
rw=randwrite         #測試隨機寫的I/O
rw=randread         #測試隨機讀的I/O
rw=randrw            #測試隨機寫和讀的I/O
rw=read                #測試順序讀的I/O
rw=write                #測試順序寫的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引擎使用psync方式
rwmixwrite=30        #在混合讀寫的模式下,寫佔30%
group_reporting      #關於顯示結果的,彙總每一個進程的信息

lockmem=1G           #只使用1g內存進行測試
zero_buffers         #用0初始化系統buffer
nrfiles=8            #每一個進程生成文件的數量

經常使用參數使用舉例:oop

#順序讀
fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest

#順序寫
fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest

#隨機讀
fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest

#隨機寫
fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest

#混合隨機讀寫
fio -filename=/dev/sda -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

測試結果分析: bw:磁盤的吞吐量,這個是順序讀寫考察的重點 iops:磁盤的每秒讀寫次數,這個是隨機讀寫考察的重點測試

read : io=948896KB, bw=9475.1KB/s, iops=592, runt=100138msec
write: io=380816KB, bw=3802.1KB/s, iops=237, runt=100138msec
相關文章
相關標籤/搜索