天天看點

Linux上檢視造成IO高負載的程序

方法1:使用iotop工具

這是一個python腳本工具,使用方法如:iotop -o

方法2:使用工具dmesg

使用dmesg之前,需要先開啟核心的IO監控:

echo 1 >/proc/sys/vm/block_dump或sysctl vm.block_dump=1

然後可以使用如下指令檢視IO最重的前10個程序:

dmesg |awk -F: '{print $1}'|sort|uniq -c|sort -rn|head -n 10

方法3:使用指令“iostat -x 1“确定哪個裝置IO負載高:

# iostat -x 1 3

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

           1.06    0.00    0.99    1.09    0.00   97.85

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

sda          0.49  17.29  1.74  6.75   23.47  200.18    11.73   100.09    26.33     0.10   12.25   5.73   4.87

找“await”值最大的裝置(Device),如上的結果即為sda。

然後使用mount找到sda挂載點,再使用fuser指令檢視哪些程序在通路,如:

# fuser -vm /data