1、简介
磁盘的io性能是评估存储系统的重要指标之一。fio(flexible I/O tester)测试工具可以根据指定的I/O类型模拟io负载对存储系统进行压力测试。
2、常见参数
ioengine: 使用的引擎。支持多种I/O引擎,可通过fio--enghelp进行查看。若使用libaio(linux的异步I/O)时,需要先安装libaio-devel包。使用异步模式引擎才能设置iodepeth
filename:支持文件系统及裸设备,可对整个磁盘或者分区进行测试,例如filename=/dev/sdb
bs: 单次io的块大小。常用为4k、8k、64k、128k、256k、1M和4M
size:此次测试文件的大小,可以设置为容量的绝对值,例如100GB,也可设置成百分比,表示占所测磁盘的百分比,按照bs设置的块大小进行io
direct: 设置为1时则不使用I/0缓存(相当于o_direct),0表示使用bufferio
thread: fio默认使用forh()创建进程。该选项设置的话fio将通过pthread_create来创建线程
numjobs:创建的线程或者进程数量。推荐等于cpu的core值。
iodepth:I/O深度。仅对异步模式的I/O引擎生效,可以简单的理解为一次要提交多少个I/O请求
rw:读写方式。其中,read--顺序读 write--顺序写 randread--随机读 randwrite--随机写 randrw--随机混合读写
rwmixread:读所占比例,例如rwmixread=70表示读写比例为7:3
group_reporting:汇总所有进程(线程)的信息,然后展示结果
3、使用方法
3.1 命令行格式
fio -ioengine=rbd -bs=1M -size=100% -direct=1 -thread=1 -numjobs=1 -rw=write -rwmixread=0 -iodepth=128 -pool=volumes -rbdname=test_librbd -log_avg_msec=50 -name=mytest -group_reporting
3.2 文件格式
# 使用方法
fio fio.txt(文件名)
# fio文件示例如下
[global]
ioengine=libaio
direct=1
thread=1
runtime=300
ramp_time=10
filename=/dev/vdb
bs=4k
size=100%
numjobs=32
iodepth=32
group_reporting
time_based
log_avg_msec=50
[seq-write]
stonewall
rw=randrw
rwmixread=70