问题描述
官方文档已解释 fio 的输出内容,我们也完成学习,但是我们并没有记住;
所以,我们将再次学习 fio 输出的内容(各个字段的含义),并记录该笔记;
该笔记将记录:fio 输出内容的含义,核心目的是便于以后的快速查阅;
解决方案
针对输出内容的详细解释,建议 fio/1.15. Interpreting the output 文档,该笔记仅记录我们需要关注的内容;
运行时,状态输出
Jobs: 20 (f=20): [R(10),W(10)][4.0%][r=20.5MiB/s,w=23.5MiB/s][r=82,w=94 IOPS][eta 57m:36s]
| |-+--| |-----+-----||-+--||-----------+-----------||------+-------||-----+-----|
| | | | | | |
| | | | | | 剩余运行时间;
| | | | | r/w IOPS;
| | | | r/w Bandwidth;
| | | 预计完成百分比;
| | |
| | 10 个 Job 在进行 Read;10 个 Job 在进行 Write 操作;
| |
| 已打开 20 个文件;
|
正在运行并执行 IO 的进程数;
运行后,报告输出
输出概览(Overview)
Client1: (groupid=0, jobs=1): err= 0: pid=16109: Sat Jun 24 12:07:54 2017
write: IOPS=88, BW=623KiB/s (638kB/s)(30.4MiB/50032msec)
slat (nsec): min=500, max=145500, avg=8318.00, stdev=4781.50
clat (usec): min=170, max=78367, avg=4019.02, stdev=8293.31
lat (usec): min=174, max=78375, avg=4027.34, stdev=8291.79
clat percentiles (usec):
| 1.00th=[ 302], 5.00th=[ 326], 10.00th=[ 343], 20.00th=[ 363],
| 30.00th=[ 392], 40.00th=[ 404], 50.00th=[ 416], 60.00th=[ 445],
| 70.00th=[ 816], 80.00th=[ 6718], 90.00th=[12911], 95.00th=[21627],
| 99.00th=[43779], 99.50th=[51643], 99.90th=[68682], 99.95th=[72877],
| 99.99th=[78119]
bw ( KiB/s): min= 532, max= 686, per=0.10%, avg=622.87, stdev=24.82, samples= 100
iops : min= 76, max= 98, avg=88.98, stdev= 3.54, samples= 100
lat (usec) : 250=0.04%, 500=64.11%, 750=4.81%, 1000=2.79%
lat (msec) : 2=4.16%, 4=1.84%, 10=4.90%, 20=11.33%, 50=5.37%
lat (msec) : 100=0.65%
cpu : usr=0.27%, sys=0.18%, ctx=12072, majf=0, minf=21
IO depths : 1=85.0%, 2=13.1%, 4=1.8%, 8=0.1%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwt: total=0,4450,0, short=0,0,0, dropped=0,0,0
latency : target=0, window=0, percentile=100.00%, depth=8
Run status group 0 (all jobs):
READ: bw=20.9MiB/s (21.9MB/s), 10.4MiB/s-10.8MiB/s (10.9MB/s-11.3MB/s), io=64.0MiB (67.1MB), run=2973-3069msec
WRITE: bw=1231KiB/s (1261kB/s), 616KiB/s-621KiB/s (630kB/s-636kB/s), io=64.0MiB (67.1MB), run=52747-53223msec
Disk stats (read/write):
sda: ios=16398/16511, merge=30/162, ticks=6853/819634, in_queue=826487, util=100.00%
作业信息
Client1: (groupid=0, jobs=1): err= 0: pid=16109: Sat Jun 24 12:07:54 2017 |-+---| |-+-----| |-+--| |-+--| |---+---| |----------+-----------| | | | | | | | | | | | 进程运行结束的时间; | | | | | | | | | 进程 PID,或线程 TID; | | | | | | | 最后看到的错误 ID,为 0 表示没有错误; | | | | | 被聚合的 Job 数; | | | Group ID(与 group_reporting 有关) | Job 名称;
指标概述
write: IOPS=88, BW=623KiB/s (638kB/s)(30.4MiB/50032msec)
|-+-| |-+---| |-+-----------------| |-+---| |-+-----|
| | | | |
| | | | 进程运行时间
| | | |
| | | 执行的 I/O 总量(^2)
| | |
| | 平均带宽(^2 与 ^10)
| |
| 平均 IOPS
|
I/O 方向(read/write/trim)
提交延迟(slat)
slat (nsec): min=500, max=145500, avg=8318.00, stdev=4781.50
|-+-------| |-+---| |-+------| |-+-------| |-+---------|
| | | | |
| | | | 标准差(Standard Deviation)
| | | 平均值
| | 最大值
| 最小值
提交延迟(Submission Latency),及时间单位(ms,us,ns)
提交延迟,是指 fio 从 初始化 I/O 到 提交该 I/O 所花费的时间:
针对 Async IO Engin,该时间是到 IO Engine 队列函数调用后(包括)。如果存在 commit 函数,则也包含 commit 函数; | |-+-----------------------| fio IO init -> queue/commit -> completed |-+-----------| | 针对 Sync IO Engine,该时间是到 IO Engine 队列函数被调用之前;
对于 Sync IO,此行不显示,因为 slat 可以忽略不计;
完成延迟(clat)
clat (usec): min=170, max=78367, avg=4019.02, stdev=8293.31
|-+-------| |-+---| |-+-----| |-+-------| |-+---------|
| | | | |
| | | | 标准差(Standard Deviation)
| | | 平均值
| | 最大值
| 最小值
完成延迟(Completion Latency),及时间单位(ms,us,ns)
完成延迟,是指从提交到完成 I/O 片段的时间:
针对 Async IO Engine,其表示从 IO Engine 的队列函数(若存在 commit 函数,则也包括)完成后到 fio 得知 I/O 完成的时间;
|
|-+---------|
fio IO init -> queue/commit -> completed
|-+---------------------|
|
针对 Sync IO,其表示从 I/O 提交到操作系统到完成的时间;
总计延迟(lat)
lat (usec): min=174, max=78375, avg=4027.34, stdev=8291.79
|-+------| |-+---| |-+-----| |-+-------| |-+---------|
| | | | |
| | | | 标准差(Standard Deviation)
| | | 平均值
| | 最大值
| 最小值
延迟综合(Total Latency),及时间单位(ms,us,ns)
该时间表示从 fio 创建 I/O 单元 到 完成 I/O 操作 的时间。它是 slat 和 clat 的总和;
带宽大小(bw)
bw ( KiB/s): min= 532, max= 686, per=0.10%, avg=622.87, stdev=24.82, samples= 100
|-+--------| |-+-----| |-+-----| |-+-----| |-+------| |-+----- -| |-+---------|
| | | | | | |
| | | | | | 样本总数
| | | | | 标准差(Standard Deviation)
| | | | 平均值
| | | 该线程在其组(每个)中收到的总聚合带宽的近似百分比
| | 最大值
| 最小值
带宽大小,及带宽单位
带宽统计,其基于样本(Simple)
只有在该组中的线程位于同一磁盘上时,最后一个值才真正有用,因为它们会竞争磁盘访问;
读写次速(IOPS)
iops : min= 76, max= 98, avg=88.98, stdev= 3.54, samples= 100
|-+--------| |-+-----| |-+-----| |-+-----| |-+-------| |-+---------|
| | | | | |
| | | | | 样本总数
| | | | 标准差(Standard Deviation)
| | | 平均值
| | 最大值
| 最小值
IOPS
延迟分布(lat)
lat (usec) : 250=0.04%, 500=64.11%, 750=4.81%, 1000=2.79% lat (msec) : 2=4.16%, 4=1.84%, 10=4.90%, 20=11.33%, 50=5.37% lat (msec) : 100=0.65%
I/O 完成延迟的分布,指从 I/O 离开 fio 到它完成的时间。与上面单独的 read/write/trim 部分不同,此处和其余部分中的数据适用于报告组(该示例中仅包含一个组)的所有 I/O;
250=0.04% means that 0.04% of the I/Os completed in under 250us.
500=64.11% means that 64.11% of the I/Os required 250 to 499us for completion.
CPU(处理器资源使用)
cpu : usr=0.27%, sys=0.18%, ctx=12072, majf=0, minf=21
|-+---------| |-+-----| |-+-----| |-+-----| |-+--| |-+---|
| | | | | |
| | | | | Minor Page Faults
| | | | Major Page Faults
| | | 上下文切换次数;
| | System Time
| User Time
处理器资源
CPU 利用率数字是该报告组中作业的平均值,同时 ctx 和 Page Fault 都是相加得到的;
IO depths(深度分布)
IO depths : 1=85.0%, 2=13.1%, 4=1.8%, 8=0.1%, 16=0.0%, 32=0.0%, >=64=0.0%
以 ^2 为单位,并涵盖其后部分(16= 表示 16-31)
IO depths 占比与 IO submit、IO complete 占比有所不同;
IO submit(提交分布)
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
在一次 submit 调用中提交了多少个 I/O
16= 表示 9-16
IO submit 占比与 IO depths 占比有所不同;
IO complete(完成分布)
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
IO complete 占比与 IO depths 占比有所不同,但是 IO submit 与 IO complete 的占比应该是相同(或相近)的;
IO issued rwt
issued rwt: total=0,4450,0, short=0,0,0, dropped=0,0,0
|-+----------| |-+-------| |-+---------|
| | |
| | 丢弃的 IO 数量;
| RWH_WRITE_LIFE_SHORT ?
发出的 read/write/trime 请求数;
IO latency
latency : target=0, window=0, percentile=100.00%, depth=8
该部分指标与 latency_target(及相关选项)有关。当使用这些选项时,该部分描述满足指定延迟目标所需的 I/O 深度;
Run status group x(统计部分)
Run status group 0 (all jobs):
READ: bw=20.9MiB/s (21.9MB/s), 10.4MiB/s-10.8MiB/s (10.9MB/s-11.3MB/s), io=64.0MiB (67.1MB), run=2973-3069msec
WRITE: bw=1231KiB/s (1261kB/s), 616KiB/s-621KiB/s (630kB/s-636kB/s), io=64.0MiB (67.1MB), run=52747-53223msec
|-+-------------------| |-+-------------------------------| |-+---------------| |-+---------------|
| | | |
| | | 该组中线程的最小和最长运行时间;
| | 该组中所有线程执行的 I/O 总量
| 该组中所有线程的最小带宽和最大带宽(^2, ^10)
该组中线程的总带宽(^2, ^10)
Disk stats(磁盘统计)
Disk stats (read/write):
sda: ios=16398/16511, merge=30/162, ticks=6853/819634, in_queue=826487, util=100.00%
|-+-----------| |-+--------| |-+-------------| |-+------------| |-+--------|
| | | | |
| | | | 磁盘使用率;
| | | 在磁盘队列中花费的总时间
| | 我们保持磁盘忙碌的 ticks 数;
| I/O 调度程序执行的合并数;
所有组执行的 I/O 数