fio是一个可用于基准测试和硬件压力测试的I/O工具。它支持19种I/O引擎(sync, mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio等),支持块设备和文件。支持Linux、FreeBSD、netBSD、OpenBSD、OS X、Android、Windows、OpenSolaris、AIX、HP-UX
http://freecode.com/projects/fio/
fio用法
1. 随机读写:
fio -filename=/tmp/test -direct=1 -iodepth 1 -thread -rw=randrw -ioengine=psync -bs=16k -size 2G -numjobs=10 -runtime=30 -group_reporting -name=mytest13
说明:
filename=/tmp/test 测试文件名称,通常选择需要测试的盘的data目录。
direct=1 测试过程绕过机器自带的buffer。使测试结果更真实。
rw=randwrite 测试随机写的I/O
rw=randrw 测试随机写和读的I/O
bs=16k 单次io的块文件大小为16k
bsrange=512-2048 同上,提定数据块的大小范围
size=2G 本次的测试文件大小为2G,以每次4k的io进行测试。
numjobs=10 本次的测试线程为10.
runtime=30 测试时间为30秒,如果不写则一直将2G文件分4k每次写完为止。
ioengine=psync io引擎使用pync方式
rwmixwrite=30 在混合读写的模式下,写占30%
group_reporting 关于显示结果的,汇总每个进程的信息
lockmem=1g 只使用1g内存进行测试
nrfiles=8 每个进程生成文件的数量。
顺序读 -rw=read
顺序写 -rw=write
随机写 -rw=randwrite
随机读 -rw=randread
混合随机读写(读占60%) -rw=randrw -rwmixread=60
混合随机读写(写占60%) -rw=randrw -rwmixwrite=60