Linux磁盘性能测试工具fio详解

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

访问官方项目链接

安装fio

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

举例

# 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详解

精彩评论

7+3=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏