fio命令来自英文词组“Flexible IO Tester”的缩写,其功能是用于对磁盘进行压力测试。硬盘I/O吞吐率是性能的重要指标之一,运维人员可以使用fio命令对其进行测试,测试又可以细分为顺序读写和随机读写两大类。
语法格式:fio [参数] 设备名
常用参数:
| --bandwidth-log | 生成每个作业的带宽日志 | 
| --client | 设置要完成作业的主机信息 | 
| --daemonize | 设置服务PID文件 | 
| --debug | 使用调试模式 | 
| --eta | 设置何时输出ETA评估值 | 
| --help | 显示帮助信息 | 
| --latency-log | 生成每个作业的延迟日志 | 
| --max-jobs | 设置最大支持的作业数 | 
| --minimal | 使用简洁格式显示统计信息 | 
| --output | 设置输出文件名 | 
| --runtime | 限制运行时间 | 
| --readonly | 启用只读安全检查 | 
| --version | 显示版本信息 | 
常用元素:
| bs | 指定单次io的块文件大小 | 
| bsrange | 提定数据块的大小范围 | 
| filename | 测试文件名称 | 
| rw=randwrite | 测试随机写的I/O | 
| rw=randrw | 测试随机写和读的I/O | 
| 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