在Linux中,最好用的一款磁盘性能测试工具便是fio,提供多种方式测试IOPS等重要磁盘性能指标,与iostat不同的是,iostat只能监控当前性能数据,并不能用于测试(另顺带一句Windows中的磁盘性能测试工具推荐iometer)。

访问官方项目链接
安装fio
|
1 |
yum -y install fio |
参数说明
| 参数 | 说明 |
| filename=/dev/sda | 测试目录为/dev/sda |
| direct=1 | 测试时绕过buffer,测试结果更真实 |
| rw=read | 测试顺序读I/O |
| rw=write | 测试顺序写I/O |
| rw=rw, readwrite | 测试顺序读写I/O |
| rw=randread | 测试随机读I/O |
| rw=randwrite | 测试随机写I/O |
| rw=randrw | 测试随机读写I/O |
| bs=8k | 单次IO的块文件大小为8k |
| bsrange=512-4096 | 单次IO的块文件大小范围为512-2048 |
| size=5g | 测试文件总大小为5G |
| numjobs=50 | 测试线程为50 |
| runtime=120 | 测试时间为120秒,优先级比size高 |
| ioengine=psync | 使用psync作为IO引擎 |
| rwmixwrite=60 | 测试读写性能时,写占60% |
| group_reporting | 汇总每个进程的结果信息 |
| lockmem=1g | 只使用1G内存进行测试 |
| zero_buffers | 用0初始化系统buffer |
| nrfiles=5 | 每个进程生成文件的数量为5 |
举例
|
1 2 3 4 5 6 7 8 |
# 100%随机,100%写, 4K fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=4k -size=5G -numjobs=50 -group_reporting -name=rd_write_4k # 100%顺序,100%写,4K,180秒 fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=4k -size=5G -numjobs=50 -runtime=180 -group_reporting -name=sq_read_4k # 100%随机,60%读,40%写,8K fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=randrw -ioengine=psync -rwmixread=60 -bs=8k -size=5G -numjobs=50 -group_reporting -name=rd_60r_8k # 100%顺序,100%读,8K,120秒 fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=8k -size=5G -numjobs=50 -runtime=120 -group_reporting -name=io-vda |
更多可参照官方提供的样例。
解读结果

| 字段 | 说明 |
| slat | 提交延迟 |
| clat | 完成延迟 |
| lat | 响应时间 |
| bw | 带宽 |
| iops | IOPS |
| cpu | CPU使用情况 |
| IO depths | 队列 |
| IO submit | 单个IO提交的IO数 |
| IO complete | 单个IO完成的IO数 |
| IO issued rwts | 读写请求 |
| IO latency | 延迟分布 |
| Run status group * (all jobs) | |
| io= | IO总数据 |
| run= | IO总时间 |
| aggrb= | 组总带宽 |
| minb= | 最小平均带宽 |
| maxb= | 最大平均带宽 |
| mint= | 组中线程的最短运行时间 |
| maxt= | 组中线程的最长运行时间 |
| Disk stats (read/write) | |
| ios= | 所有组总共执行的IO数 |
| merge= | 总共发生的IO合并数 |
| ticks= | 磁盘忙时次数 |
| io_queue= | 花费在队列的总时间 |
| util= | 磁盘利用率 |
原创文章禁止转载:技术学堂 » Linux磁盘性能测试工具fio详解

技术学堂
















