FIO参数中,ioengine使用libaio,并发jobs数固定为1,通过iodepth来控制压力。
分别测试随机读、随机写,作为读写的性能基准。不测试顺序读写,不测试混合读写。
1、测试IOPS峰值: iodepth=128, 块大小4k。
随机读: ./fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=5G -numjobs=1 -runtime=300 -group_reporting -name=/var/1/testfile
随机写: ./fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=5G -numjobs=1 -runtime=300 -group_reporting -name=/var/1/testfile
2、测试吞吐量(bw)峰值: iodepth=64,块大小1024k。
随机读: ./fio -direct=1 -iodepth=64 -rw=randread -ioengine=libaio -bs=1024k -size=5G -numjobs=1 -runtime=300 -group_reporting -name=/var/1/testfile
随机写: ./fio -direct=1 -iodepth=64 -rw=randwrite -ioengine=libaio -bs=1024k -size=5G -numjobs=1 -runtime=300 -group_reporting -name=/var/1/testfile
3、测试响应时延(lat): iodepth=1,块大小4k。测试延迟时,iops一般保持在1k以上,bw在4MB/s以上,实际使用时lat和读写压力大小密切相关。
随机读: ./fio -direct=1 -iodepth=1 -rw=randread -ioengine=libaio -bs=4k -size=5G -numjobs=1 -runtime=300 -group_reporting -name=/var/1/testfile
随机写: ./fio -direct=1 -iodepth=1 -rw=randwrite -ioengine=libaio -bs=4k -size=5G -numjobs=1 -runtime=300 -group_reporting -name=/var/1/testfile