FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等。
fio 官网地址:http://freshmeat.net/projects/fio/
centos中安装fio:
wget http://brick.kernel.dk/snaps/fio-2.1.10.tar.gz
yum install libaio-devel
tar -zxvf fio-2.1.10.tar.gz
cd fio-2.1.10
make
make install
测试的条件分别如下:
1、测试顺序读性能
fio --filename=/root/test/test -iodepth=64 -ioengine=libaio --direct=1 --rw=read --bs=16k --size=1g --numjobs=64 --runtime=10 --group_reporting --name=test-read
2、测试顺序写性能
fio --filename=/root/test/test -iodepth=64 -ioengine=libaio --direct=1 --rw=write --bs=16k --size=1g --numjobs=64 --runtime=10 --group_reporting --name=test-write
(如果使用顺序写测试的时候,先测试大文件,譬如size=80g,然后测试小文件,譬如1g、5g,这样,测试的结果有很大的差别,是不是因为测试80g的文件之后,数据缓存了,所以再测试小文件的时候,因为缓存数据的存在而使bw和iops都有很大的提高呢?随机的读写并不存在这个问题。。)
3、测试随机读性能
fio --filename=/root/test/test -iodepth=64 -ioengine=libaio --direct=1 --rw=randread --bs=16k --size=1g --numjobs=64 --runtime=10 --group_reporting --name=test-rand-read
4、测试随机写性能
fio --filename=/root/test/test -iodepth=64 -ioengine=libaio --direct=1 --rw=randwrite --bs=16k --size=1g --numjobs=64 --runtime=10 --group_reporting --name=test-rand-write
5、混合的顺序读写性能
fio --filename=/root/test/test -iodepth=64 -ioengine=libaio --direct=1 --rw=readwrite --bs=16k --size=1g --numjobs=64 --runtime=10 --group_reporting --name=test-rw
其中可以加入参数-rwmixwrite=30指定读写比例为70/30
6、混合的随机读写性能
fio --filename=/root/test/test -iodepth=64 -ioengine=libaio --direct=1 -rw=randrw --bs=16k --size=80g --numjobs=64 --runtime=10 --group_reporting --name=test-read-write