磁盘io问题排查

发布时间 2023-12-22 09:46:20作者: slnngk

环境:

OS:Centos 7

 

1.top查看wa很高

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
top - 08:45:04 up 722 days, 17:33,  1 user,  load average: 3.28, 3.12, 3.09
Tasks: 143 total,   1 running, 142 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni, 64.1 id, 35.8 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 65807536 total,   370956 free, 37718456 used, 27718124 buff/cache
KiB Swap:  4194300 total,  4194300 free,        0 used. 24181116 avail Mem

 

2.使用iostat查看

[root@dbslave-010007081120 relaylog]# iostat -x 1 5
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.13   24.91    0.00   74.97

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     8.00    0.00    2.00     0.00    40.00    40.00     0.00    0.50    0.00    0.50   0.50   0.10
vdb               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
vdc               0.00     0.00    0.00    2.00     0.00   904.00   904.00     4.90  994.00    0.00  994.00 492.00  98.40

await与svctm的数值差异大,肯定就是磁盘IO阻塞了,r/s和w/s的数值可以分析出是阻塞在读还是在写.

 

3.用lsof命令可以找到该进程操作了哪些文件(例:lsof –p [pid])
lsof -p 12144

 

4.使用iotop查看
iotop -oP