FIO是一个非常好的测试IOPS的工具,用于压力测试和验证硬件,支持13种不同的I/O引擎,包括:sync、mmap、libaio、posixaio、SGv3,splice,null,network,syslet,guasi,solarisaio等fio官网地址:http://freshmeat.net/projects...1.FIO安装wgethttp://brick.kernel.dk/snaps/fio-2.2.5.tar.gzyuminstalllibaio-develtar-zxvffio-2.2.5.tar.gzcdfio-2.2.5makemakeinstall2.FIO用法a)随机读取(可以直接使用,写一个2G的文件到磁盘,10个线程,随机读取1分钟,给出结果)fio-filename=/tmp/test_randread-direct=1-iodepth1-thread-rw=randread-ioengine=psync-bs=16k-size=2G-numjobs=10-runtime=60-group_reporting-name=mytest参数说明filename=/dev/sdb1测试文件名,通常选择待测磁盘的数据目录。direct=1测试过程绕过机器自带的buffer。使测试结果更加真实。rw=randwrite测试随机写入I/Orw=randrw测试随机写入和读取I/Obs=16k单个io的块文件大小为16kbsrange=512-2048同上,指定数据块大小范围size=5g这次测试文件大小为5g,每次用4kio进行测试。numjobs=30这次的测试线程是30.runtime=1000,测试时间是1000秒。如果不写入,则每次将5g文件分成4k,直至写入。ioengine=psyncio引擎使用pync方式rwmixwrite=30混合读写模式下,写入占30%group_reporting用于展示结果,汇总各个进程的信息。其他参数lockmem=1g只使用1g内存进行测试。zero_buffers用0初始化系统缓冲区。nrfiles=8每个进程生成的文件数。rw=read/write/readwrite顺序读/顺序写/顺序混合读写rw=randread/randwrite/wandrw随机读/随机写/随机混合读写b)顺序读fio-filename=/dev/sdb1-direct=1-iodepth1-thread-rw=read-ioengine=psync-bs=16k-size=2G-numjobs=10-runtime=60-group_reporting-name=mytestc)随机写入fio-filename=/dev/sdb1-direct=1-iodepth1-thread-rw=randwrite-ioengine=psync-bs=16k-size=2G-numjobs=10-runtime=60-group_reporting-name=mytestd)顺序写入fio-filename=/dev/sdb1-direct=1-iodepth1-thread-rw=write-ioengine=psync-bs=16k-size=2G-numjobs=10-runtime=60-group_reporting-name=myteste)混合随机读写fio-filename=/dev/sdb1-direct=1-iodepth1-thread-rw=randrw-rwmixread=70-ioengine=psync-bs=16k-size=2G-numjobs=10-runtime=60-group_reporting-name=mytest-ioscheduler=noop3.结果示例运行状态组0(所有作业):READ:io=85680KB,aggrb=1427KB/s,minb=1427KB/s,maxb=1427KB/s,mint=60002msec,maxt=60002msecDiskstats(读/写):sda:ios=5332/8,merge=0/0,ticks=56490/420,in_queue=56850,util=94.43%Finishedresult参数ioIO数据量aggrb平均总带宽minb最小带宽maxb最大带宽mint最小线程运行时间maxt线程最大运行时间ios总IO个数,读写合并发生个数IO合并,读/写滴答数保持磁盘忙碌的滴答数,读/写in_queue在队列上花费的总时间util磁盘利用率
