iostat 输出字段说明

iostat是在查看、分析磁盘I/O时,一个很重要的工具。我们来简单说说iostat的输出都表示什么。

先看一段iostat的输出:

[root@k8s-slave9 ~] # iostat -xdm 3 /dev/sde
Linux 4.11.3-1.el7.elrepo.x86_64 (k8s-slave9.sm.bj.hualala.com)     05 /11/2018     _x86_64_    (40 CPU)
Device:         rrqm /s   wrqm /s     r /s     w /s    rMB /s    wMB /s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sde               0.00     0.00    0.00    0.04     0.00     0.05  2720.69     0.01  160.63    1.23  182.37  90.72   0.36
 
Device:         rrqm /s   wrqm /s     r /s     w /s    rMB /s    wMB /s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sde               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
 
Device:         rrqm /s   wrqm /s     r /s     w /s    rMB /s    wMB /s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sde               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
 
Device:         rrqm /s   wrqm /s     r /s     w /s    rMB /s    wMB /s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sde               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.03    0.00    0.00    0.00   0.00   2.73
 
Device:         rrqm /s   wrqm /s     r /s     w /s    rMB /s    wMB /s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sde               0.00     0.00    0.00    0.33     0.00     0.01    40.00     0.04  207.00    0.00  207.00 125.00   4.17
 
Device:         rrqm /s   wrqm /s     r /s     w /s    rMB /s    wMB /s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sde               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
 
Device:         rrqm /s   wrqm /s     r /s     w /s    rMB /s    wMB /s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sde               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
 
Device:         rrqm /s   wrqm /s     r /s     w /s    rMB /s    wMB /s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sde               0.00     0.00    0.00    0.33     0.00     0.00    16.00     0.05  144.00    0.00  144.00 144.00   4.80

rrqm/s:     每秒合并读操作的次数

wrqm/s:    每秒合并写操作的次数

r/s:           每秒读操作的次数 (IOPS)

w/s:          每秒写操作的次数 (IOPS)

rMB/s:      每秒读带宽

wMB/s:    每秒写带宽

avgrq-sz:  I/O请求的平均大小(扇区数)

avgqu-sz: I/O请求队列的平均长度

await:      每个I/O平均耗时,单位是ms,这个时间包括I/O在队列中等待耗时,以及最终被磁盘设备处理的时间

r_await:   每个读操作的平均耗时

w_await:  每个写操作的平均耗时

svctm:     这个指标其实已经废弃了,没意义,不管这个指标

%util:       该磁盘设备的繁忙度,该设备有I/O(即非空闲)的时间比率,不考虑I/O有多少,只考虑有没有。

%util与硬盘设备饱和度

%util表示该设备有I/O(即非空闲)的时间比率,不考虑I/O有多少,只考虑有没有。由于现代硬盘设备都有并行处理多个I/O请求的能力,所以%util即使达到100%也不意味着设备饱和了。

举个简化的例子:某硬盘处理单个I/O需要0.1秒,有能力同时处理10个I/O请求,那么当10个I/O请求依次顺序提交的时候,需要1秒才能全部完成,在1秒的采样周期里%util达到100%;

而如果10个I/O请求一次性提交的话,0.1秒就全部完成,在1秒的采样周期里%util只有10%。可见,即使%util高达100%,硬盘也仍然有可能还有余力处理更多的I/O请求,即没有达到饱和状态。

 

await多大才算有问题

await是单个I/O所消耗的时间,包括硬盘设备处理I/O的时间和I/O请求在kernel队列中等待的时间,正常情况下队列等待时间可以忽略不计,姑且把await当作衡量硬盘速度的指标吧,那么多大算是正常呢?
对于SSD,从0.0x毫秒到1.x毫秒不等,具体看产品手册;
对于机械硬盘,一般来说一万转的机械硬盘是8.38毫秒,包括寻道时间、旋转延迟、传输时间。

在实践中,要根据应用场景来判断await是否正常,如果I/O模式很随机、I/O负载比较高,会导致磁头乱跑,寻道时间长,那么相应地await要估算得大一些;

如果I/O模式是顺序读写,只有单一进程产生I/O负载,那么寻道时间和旋转延迟都可以忽略不计,主要考虑传输时间,相应地await就应该很小,甚至不到1毫秒。

对磁盘阵列来说,因为有硬件缓存,写操作不等落盘就算完成,所以写操作的service time大大加快了,如果磁盘阵列的写操作不在一两个毫秒以内就算慢的了;

读操作则未必,不在缓存中的数据仍然需要读取物理硬盘,单个小数据块的读取速度跟单盘差不多。

 

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值