服务器IO高问题分析
  PVcilKyJJTzb 2023年11月02日 46 0

一、告警现象

iotop抓取图 iostat抓取图

yum -q install /usr/bin/iostat

二、现场抓取

########################
[root@localhost ~]# iotop
Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
 1024 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % -bash
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
    3 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
    4 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
    5 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [stopper/0]
    6 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/0]
########################
#iostat -x -k -d 2 5。每隔2s输出磁盘IO的详细详细,总共采样5次。
-c:只显示系统CPU统计信息,即单独输出avg-cpu结果,不包括device结果
-d:单独输出Device结果,不包括cpu结果
-k/-m:输出结果以kB/mB为单位,而不是以扇区数为单位
-x:输出更详细的io设备统计信息
interval/count:每次输出间隔时间,count表示输出次数,不带count表示循环输出
[root@localhost ~]# iostat -x -k -d 2 5
Linux 2.6.32-504.el6.x86_64 (localhost.localdomain) 	10/11/2018 	_x86_64_	(1 CPU)
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
scd0              0.00     0.00    0.00    0.00     0.02     0.00     8.00     0.00    0.97    0.97    0.00   0.97   0.00
sda               0.18     0.42    0.54    0.18    10.98     2.38    37.31     0.00    0.62    0.38    1.34   0.33   0.02
dm-0              0.00     0.00    0.57    0.59    10.47     2.38    22.09     0.00    1.87    0.67    3.03   0.19   0.02
dm-1              0.00     0.00    0.04    0.00     0.14     0.00     8.00     0.00    0.22    0.22    0.00   0.12   0.00
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队列非空的时间比率
重点关注参数
1、iowait% 表示CPU等待IO时间占整个CPU周期的百分比,如果iowait值超过50%,或者明显大于%system、%user以及%idle,表示IO可能存在问题。
2、avgqu-sz 表示磁盘IO队列长度,即IO等待个数。
3、await 表示每次IO请求等待时间,包括等待时间和处理时间
4、svctm 表示每次IO请求处理的时间
5、%util 表示磁盘忙碌情况,一般该值超过80%表示该磁盘可能处于繁忙状态。

三、分析

从截图中可以发现
iotop观察到命令[flush-8:16]和[jbd2/sdb2-8]交替使用99.99%的IO。
然后,也没有看到任何异常dmesg或/var/log/syslog。
它们是文件系统的一部分 - flush将RAM缓冲区/缓存写入磁盘,jbd2处理ext4日志
猜测
我冒险猜测:
/dev/sdb1 也许交换空间?
free -m 使用了多少交换空间:
[root@localhost ~]# free -m
             total       used       free     shared    buffers     cached
Mem:         31868      31509        359          0         20      23647
-/+ buffers/cache:       7840      24027
Swap:        20479       1130      19349
如果这是问题,您可以将swap移至sda或禁用sdb的spindowns。
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  oYd6WBUwpOnX   2023年11月02日   27   0   0 3D2d缩放ios
PVcilKyJJTzb