FIO是测试IOPS的非常好的工具,用来对磁盘进行性能测试和验证。磁盘IO是检查磁盘性能的重要指标,可以按照负载情况分成照顺序读写,随机读写两大类。
1、测试用文件
[global]
ioengine=libaio
direct=1
time_based
runtime=120
refill_buffers
norandommap
randrepeat=0
group_reporting
size=10G
filename=/data/fiodata
[seq-read-64K-Q32-T1]
rw=read
bs=64k
iodepth=32
numjobs=1
stonewall
[seq-write-64K-Q32-T1]
rw=write
bs=64k
iodepth=32
numjobs=1
stonewall
[rand-read-4K-Q8-T8]
rw=randread
bs=4k
iodepth=8
numjobs=8
stonewall
[rand-write-4K-Q8-T8]
rw=randwrite
bs=4k
iodepth=8
numjobs=8
stonewall
[rand-read-4K-Q32-T1]
rw=randread
bs=4k
iodepth=32
numjobs=1
stonewall
[rand-write-4K-Q32-T1]
rw=randwrite
bs=4k
iodepth=32
numjobs=1
stonewall
[rand-read-4K-Q1-T1]
rw=randread
bs=4k
iodepth=1
numjobs=1
stonewall
[rand-write-4K-Q1-T1]
rw=randwrite
bs=4k
iodepth=1
numjobs=1
stonewall
2、结果分析
主要查看IOPS、带宽bandwidth、延迟lantenc
结果说明:
io=执行了多少M的IO
bw=平均IO带宽
iops=IOPS
runt=线程运行时间
slat=提交延迟,提交该IO请求到kernel所花的时间(不包括kernel处理的时间)
clat=完成延迟, 提交该IO请求到kernel后,处理所花的时间
lat=响应时间
bw=带宽
cpu=利用率
IO depths=io队列
IO submit=单个IO提交要提交的IO数
IO complete=Like the above submit number, but for completions instead.
IO issued=The number of read/write requests issued, and how many of them were short.
IO latencies=IO完延迟的分布
io=总共执行了多少size的IO
aggrb=group总带宽
minb=最小.平均带宽.
maxb=最大平均带宽.
mint=group中线程的最短运行时间.
maxt=group中线程的最长运行时间.
ios=所有group总共执行的IO数.
merge=总共发生的IO合并数.
ticks=Number of ticks we kept the disk busy.
io_queue=花费在队列上的总共时间.
util=磁盘利用率