FIO是測試IOPS的很是好的工具,用來對硬件進行壓力測試和驗證,支持13種不一樣的I/O引擎,ios
包括:sync,mmap,libaio,posixaio,SGv3,splice,null,工具
network,syslet,guasi,solarisaio等等。oop
FIO官網地址:http://freshmeat.net/projects/fio/測試
1.FIO安裝spa
下載安裝包 http://brick.kernel.dk/snaps/fioF2.0.7.tar.gz.net
yuminstalllibaioFdevel線程
tarFzxvffioF2.0.7.tar.gz進程
cdfioF2.0.7內存
make it
makeinstall
2.FIO用法
隨機讀:
fioFfilename=/dev/sdb1Fdirect=1Fiodepth1FthreadFrw=randreadFioengine=psyncFbs=
16kFsize=200GFnumjobs=10Fruntime=1000Fgroup_reportingFname=mytest
說明:
filename=/dev/sdb1 測試文件名稱,一般選擇須要測試的盤的data目錄。
direct=1 測試過程繞過機F自帶的buffer。使測試結果更真實。
rw=randwrite 測試隨機寫的I/O
rw=randrw 測試隨機寫和讀的I/O
bs=16k 單次io的塊文件大小爲16k
bsrange=512F2048 同上,提定數據塊的大小範圍
size=5g 本次的測試文件大小爲5g,以每次4k的io進行測試。
numjobs=30 本次的測試線程爲30.
runtime=1000 測試時間爲1000秒,O果不寫則一直將5g文件分4k每次寫完爲止。
ioengine=psync io引擎使用pync方式
rwmixwrite=30 在混合讀寫的模式下,寫佔30%group_reporting 關於顯示結果的,彙總每一個進程的信息。
此外:
lockmem=1g 只使用1g內存進行測試。
zero_buffers 用0初始化系統buffer。
nrfiles=8 每一個進程生成文件的數量。
順序讀:
fioFfilename=/dev/sdb1Fdirect=1Fiodepth1FthreadFrw=readFioengine=psyncFbs=16k
Fsize=200GFnumjobs=30Fruntime=1000Fgroup_reportingFname=mytest
隨機寫:
fioFfilename=/dev/sdb1Fdirect=1Fiodepth1FthreadFrw=randwriteFioengine=psyncFbs=16k
Fsize=200GFnumjobs=30Fruntime=1000Fgroup_reportingFname=mytest
順序寫:
fioFfilename=/dev/sdb1Fdirect=1Fiodepth1FthreadFrw=writeFioengine=psyncFbs=16k
Fsize=200GFnumjobs=30Fruntime=1000Fgroup_reportingFname=mytest
混合隨機讀寫:
fioFfilename=/dev/sdb1Fdirect=1Fiodepth1FthreadFrw=randrwFrwmixread=70Fioengine=
psyncFbs=16kFsize=200GFnumjobs=30Fruntime=100Fgroup_reporting
Fname=mytestFioscheduler=noop
3.實際測試範例:
[root@localhost~]#fioFfilename=/dev/sdb1Fdirect=1Fiodepth1FthreadFrw=randrwFrwmixread=70
Fioengine=psyncFbs=16kFsize=200GFnumjobs=30Fruntime=100
Fgroup_reportingFname=mytest1
mytest1:(g=0):rw=randrw,bs=16KF16K/16KF16K,ioengine=psync,iodepth=1
…
mytest1:(g=0):rw=randrw,bs=16KF16K/16KF16K,ioengine=psync,iodepth=1fio2.0.7
Starting30threads
Jobs:1(f=1):[________________m_____________][3.5%done][6935K/3116K/s][423/190 iops][eta48m:20s]s]
mytest1:(groupid=0,jobs=30):err=0:pid=23802
read:io=1853.4MB,bw=18967KB/s,iops=1185,runt=100058msec
clat(usec):min=60,max=871116,avg=25227.91,stdev=31653.46
lat(usec):min=60,max=871117,avg=25228.08,stdev=31653.46
clat percentiles(msec):
bw(KB/s):min=26,max=1944,per=3.36%,avg=636.84,stdev=189.15
write:io=803600KB,bw=8031.4KB/s,iops=501,runt=100058msec
clat(usec):min=52,max=9302,avg=146.25,stdev=299.17
lat(usec):min=52,max=9303,avg=147.19,stdev=299.17
clatpercentiles(usec):
bw(KB/s) :
min=20,max=1117,per=3.37%,avg=270.27,stdev=133.27
lat(usec):100=24.32%,250=3.83%,500=0.33%,750=0.28%,1000=0.27%
lat(msec):2=0.64%,4=3.08%,10=20.67%,20=19.90%,50=17.91%
lat(msec):100=6.87%,250=1.70%,500=0.19%,750=0.01%,1000=0.01%
cpu:usr=1.70%,sys=2.41%,ctx=5237835,majf=0,minf=6344162
IOdepths:1=100.0%,2=0.0%,4=0.0%,
8=0.0%,16=0.0%,32=0.0%,>=64=0.0%
submit:0=0.0%,4=100.0%,8=0.0%,
16=0.0%,32=0.0%,64=0.0%,>=64=0.0%
complete:0=0.0%,4=100.0%,8=0.0%,
16=0.0%,32=0.0%,64=0.0%,>=64=0.0%
issued:total=r=118612/w=50225/d=0, short=r=0/w=0/d=0
Runstatusgroup0(alljobs):
READ:io=1853.4MB,aggrb=18966KB/s,minb=18966KB/s,maxb=18966KB/s,mint=100058msec, maxt=100058msec
WRITE:io=803600KB,aggrb=8031KB/s,minb=8031KB/s,maxb=8031KB/s,mint=100058msec,maxt=100058msec
Diskstats(read/write):
sdb:ios=118610/50224,merge=0/0,ticks=2991317/6860,in_queue=2998169,util=99.77%