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%