LInux %util 100,linux磁盘监控--iostat一点小问题和util计算公式

iostat简介

iostat - Report Central Processing Unit (CPU) statistics and input/output statistics for devices, partitions and network filesystems (NFS)

通常用来看linux服务器io指标,也能看cpu,但是top看cpu比iostat猛,也能看网络指标NFS,但是sar又比iostat猛,所以就用来看io。

磁盘io负载通常影响线上数据落地,如果磁盘负载高,有很多请求在队列中来不及处理,导致线上数据处理延迟,因此需要个磁盘io负载的监控,笔者用的是iostat。

(base) [work@node1 wwwroot]$ iostat -zx

Linux 2.6.32-696.18.7.el6.x86_64 (ger-frankfurt-loget-dt-001) 12/11/2019 _x86_64_ (40 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle

5.78 0.00 1.96 0.10 0.00 92.17

Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await r_await w_await svctm %util

sda 0.18 5.11 7.04 31.90 647.66 2769.29 87.76 0.05 1.22 2.55 0.93 0.24 0.92

scd0 0.00 0.00 0.00 0.00 0.00 0.00 8.00 0.00 3.79 3.79 0.00 3.76 0.00

sdb 0.00 0.15 4.95 3.63 420.92 455.76 102.17 0.06 6.83 0.25 15.82 0.10 0.08

以上命令能统计磁盘io的繁忙程度,读取util即可反应出来。but磁盘负载明显满了,告警却没有,排查发现,命令【iostat -xz】打印一次统计记录,每个盘符一条记录数据,但是这条数据却是固定的,我石化了,

如下所示,第二次统计记录是真实数据。

(base) [work@node1 wwwroot]$ iostat -zx 1

Linux 2.6.32-696.18.7.el6.x86_64 (ger-frankfurt-loget-dt-001) 12/11/2019 _x86_64_ (40 CPU)

【我是假的】

avg-cpu: %user %nice %system %iowait %steal %idle

5.78 0.00 1.96 0.10 0.00 92.17

Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await r_await w_await svctm %util

sda 0.18 5.11 7.04 31.90 647.64 2768.94 87.75 0.05 1.20 2.55 0.91 0.24 0.92

scd0 0.00 0.00 0.00 0.00 0.00 0.00 8.00 0.00 3.79 3.79 0.00 3.76 0.00

sdb 0.00 0.15 4.95 3.62 420.93 455.61 102.28 0.06 6.83 0.25 15.85 0.10 0.08

【我是真的】

avg-cpu: %user %nice %system %iowait %steal %idle

18.85 0.00 7.12 39.22 0.00 34.81

Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await r_await w_await svctm %util

sda 0.00 0.00 2.00 238.00 264.00 117144.00 489.20 138.23 738.70 660.50 739.35 4.17 100.10

sdb 0.00 5.00 15.00 1375.00 120.00 19024.00 13.77 10.85 7.81 0.00 7.89 0.06 8.30

【我是真的】

avg-cpu: %user %nice %system %iowait %steal %idle

20.02 0.00 7.25 37.41 0.00 35.32

Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await r_await w_await svctm %util

sda 2.00 2.00 2.00 74.00 136.00 35880.00 473.89 133.12 472.54 479.00 472.36 13.14 99.90

sdb 0.00 1.00 13.00 3289.00 104.00 42992.00 13.05 26.25 7.95 0.46 7.98 0.06 19.70

【我是真的】

avg-cpu: %user %nice %system %iowait %steal %idle

19.89 0.00 7.29 42.86 0.00 29.96

Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await r_await w_await svctm %util

sda 1.00 1.00 7.00 6.00 1064.00 3072.00 318.15 135.67 1655.85 747.57 2715.50 76.92 100.00

sdb 0.00 0.00 14.00 2897.00 112.00 30664.00 10.57 22.76 7.82 1.14 7.85 0.06 17.90

avg-cpu: %user %nice %system %iowait %steal %idle

22.64 0.00 7.71 32.16 0.00 37.49

Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await r_await w_await svctm %util

sda 12.00 36.00 22.00 614.00 7464.00 75232.00 130.03 153.18 678.43 165.18 696.82 1.57 100.00

sdb 0.00 1.00 17.00 3382.00 136.00 44016.00 12.99 29.80 8.77 0.18 8.81 0.07 22.40

读第二次数据解决问题

iostat -zx 1 2

统计两次数据,取第二次的,这也是奇葩。

关键指标释义--util公式

瑕不掩瑜,小毛病虽然让人尴尬,但是看磁盘io还是iostat猛。

整点关注3个指标:

1、avgqu-sz:请求队列长度。

2、svctm:平均io处理时长(毫秒)。

3、%util:io繁忙程度,就是负载强度。

rrqm/s: 每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并

wrqm/s: 每秒对该设备的写请求被合并次数

r/s: 每秒完成的读次数

w/s: 每秒完成的写次数

rkB/s: 每秒读数据量(kB为单位)

wkB/s: 每秒写数据量(kB为单位)

avgrq-sz:平均每次IO操作的数据量(扇区数为单位)

avgqu-sz: 平均等待处理的IO请求队列长度

await: 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)

svctm: 平均每次IO请求的处理时间(毫秒为单位)

%util: 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率

对于以上示例输出,我们可以获取到以下信息:

Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await r_await w_await svctm %util

sda 12.00 36.00 22.00 614.00 7464.00 75232.00 130.03 153.18 678.43 165.18 696.82 1.57 100.00

每秒有636次IO操作(r/s+w/s),其中以写操作为主体

平均每次IO请求等待处理的时间为678.43毫秒,处理耗时为1.57毫秒

等待处理的IO请求队列中,平均有153.18个请求驻留

公式

util = (r/s+w/s) * (svctm/1000)

对于上面的例子有:util = (22+614)*(1.57/1000) = 0.999

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值