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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM