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

标签: | 发表时间:2022-09-13 09:40 | 作者:
出处:https://www.jianshu.com

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



相关 [linux 磁盘 监控] 推荐:

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

- -
通常用来看linux服务器io指标,也能看cpu,但是top看cpu比iostat猛,也能看网络指标NFS,但是sar又比iostat猛,所以就用来看io. 磁盘io负载通常影响线上数据落地,如果磁盘负载高,有很多请求在队列中来不及处理,导致线上数据处理延迟,因此需要个磁盘io负载的监控,笔者用的是iostat.

Linux系统监控

- - CSDN博客系统运维推荐文章
查看所有的进程和端口使用情况:. 查看nginx并发(连接数)进程数:. 查看当网络连接状态中,已建立连接的数量:. 查看系统tcp连接中各个状态的连接数. 输出每个ip的连接数,以及总的各个状态的连接数. df -hl 查看磁盘使用情况 . df -hl 查看磁盘剩余空间. df -h 查看每个根路径的分区大小.

linux使用FIO测试磁盘的iops

- - 企业架构 - ITeye博客
FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等. fio 官网地址: http://freshmeat.net/projects/fio/.

linux用dd测试磁盘速度

- -
linux用dd测试磁盘速度. 首先要了解两个特殊的设备:. /dev/null:回收站、无底洞. /dev/zero:产生字符. 因为/dev//zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力. 因为/dev/sdb1是一个物理分区,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在/dev/sdb1上,也相当于测试磁盘的读能力.

常用的linux系统监控命令

- Mountain - agapple
记录一下自己常用的linux系统命令,方便以后查阅,发觉记忆越来越不行了. 找到最耗CPU的java线程. 命令:ps -mp pid -o THREAD,tid,time   或者  ps -Lfp pid. 这个命令的作用,主要是可以获取到对应一个进程下的线程的一些信息. 比如你想分析一下一个java进程的一些运行瓶颈点,可以通过该命令找到所有当前Thread的占用CPU的时间,也就是这里的最后一列.

Linux性能监控与分析工具

- - CSDN博客系统运维推荐文章
最近需要对一套预研完成的系统性能测试,该系统部署在Linux服务器集群上. 在高并发、高负载场景下收集每台设备资源占用的全部信息(这些信息包括CPU,内存,I/O,磁盘,网络流量等等等),进一步分析系统瓶颈. 这里用上了nmon这款工具. 由nmon负责定期收集全套系统信息,再由nmon_analyser将原始数据转换为可视化的表格与图形.

Linux系统和性能监控

- - zzm
CPU性能表现如何一般从三个方面来衡量:运行队列、利用率和上下文切换. 正如前文所提及的,性能表现的好坏和基线数据(或预期)是密不可分的. 对大部分系统而言,一些基本的性能预期如下:. 运行队列——每个处理器运行队列中不应该超过1-3个线程. 例如,一个双核的系统中,运行队列长度不应该超过6. (译注:即一个系统的load average值不应该大于核数的4倍.

Linux下的IO监控与分析

- - 乐无线-无线互联网观察
2010年1月27日,据消息人士透露,搜狐以涉嫌盗版名义将优酷网告上法庭,目前此案已经在北京海淀法院立案. 曾传出已经“握手言和”的张朝阳与古永锵,在距离《中国互联网行业版权自律宣言》发布仅一周后,再次点燃了“战火”. Linux下的IO 监控与分析. 近期要在公司内部做个Linux IO方面的培训, 整理下手头的资料给大家分享下.

nagios监控linux主机监控内存脚本 - jihite

- - 博客园_首页
工作包括两部分监控端(一二三)和被监控端(四). 一、nrpe.cfg中添加脚本. nrpe.cfg中添加命令索引. 说明:实际内存使用量超过80%警告;超过90%严重警告. 参考脚本check_used_mem.sh. $1、$2分别指输入的第一、二个参数,比如:. sh del.sh  a                        #第一个参数是a.

Linux系统调优:提高磁盘吞吐量

- - 开心平淡对待每一天。热爱生活
          在LINUX系统中,如果有大量读请求,默认的请求队列或许应付不过来,幸好LINUX 可以 动态调整请求队列数,默认的请求队列数存放在 /sys/block/hda/queue/nr_requests 文件中,. 现在我们来测试请求一个1G大小的文件(测试环境为虚拟机):. 由此看出,共花了1分55秒,现在把 nr_requests 的 128 改成 512 再试下:.