fio命令 – 对磁盘进行压力测试

fio命令来自英文词组flexible I/O tester的缩写,其功能是对磁盘进行压力测试。硬盘I/O吞吐率是其性能的重要指标之一,运维人员可以使用fio命令对其进行测试,测试又可以细分为顺序读写和随机读写两大类。

语法格式:fio 参数 设备名

常用参数:

--bandwidth-log生成每个作业的带宽日志 --max-jobs设置最大支持的作业数
--client设置要完成作业的主机信息--minimal使用简洁格式显示统计信息
--daemonize指定要将PID信息写入到的文件--output设置输出文件名
--debug使用调试模式--runtime限制运行时间
--eta设置何时输出ETA评估值--readonly启用只读安全检查
--help显示帮助信息--version显示版本信息
--latency-log生成每个作业的延迟日志  

常用元素:

bs指定单次I/O的块文件大小 rw=randwrite测试随机写的I/O
bsrange提定数据块的大小范围rw=randrw测试随机写和读的I/O
filename测试文件名称size指定每个线程读写的数据量

参考示例

进行随机读取测试:

[root@linuxcool ~]# fio -filename=File -direct=1 -iodepth 1 -thread -rw=read -ioengine= psync -bs=16k -size=10G -numjobs=10 -runtime=100 -group_reporting -name=mytest 

进行随机写入测试:

[root@linuxcool ~]# fio -filename=File -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest

进行顺序写入测试:

[root@linuxcool ~]# fio -filename=File -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest