FIO是测试IOPS的很是好的工具,用来对硬件进行压力测试和验证,支持13种不一样的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等。ios
fio 官网地址:http://freshmeat.net/projects...工具
wget http://brick.kernel.dk/snaps/fio-2.2.5.tar.gz yum install libaio-devel tar -zxvf fio-2.2.5.tar.gz cd fio-2.2.5 make make install
a) 随机读oop
(可直接用,向磁盘写一个2G文件,10线程,随机读1分钟,给出结果)测试
fio -filename=/tmp/test_randread -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest
参数说明.net
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 每一个进程生成文件的数量。 rw=read/write/readwrite 顺序读/顺序写/顺序混合读写 rw=randread/randwrite/wandrw 随机读/随机写/随机混合读写
b) 顺序读code
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest
c) 随机写队列
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest
d) 顺序写进程
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest
e) 混合随机读写内存
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest -ioscheduler=noop
Run status group 0 (all jobs): READ: io=85680KB, aggrb=1427KB/s, minb=1427KB/s, maxb=1427KB/s, mint=60002msec, maxt=60002msec Disk stats (read/write): sda: ios=5332/8, merge=0/0, ticks=56490/420, in_queue=56850, util=94.43% Finished
结果参数
io IO数据量 aggrb 平均总带宽 minb 最小带宽 maxb 最大带宽 mint 线程最短运行时间 maxt 线程最长运行时间 ios 总IO数,读/写 merge 发生IO合并的次数,读/写 ticks Number of ticks kept the disk busy,读/写 in_queue 花在队列上的总时间 util 磁盘利用率