如何查找当前io占用最高的程序?
对于这一问题,小编找了网友们常用的两种方法供大家参考:
方法一:
1、开启IO监控:sysctl vm.block_dump=1或echo 1 >/proc/sys/vm/block_dump
2、开启后内核会将IO读写dump到日记,用dmesg查看:dmesg
3、进程读写block到磁盘dm-0:
mysqld(7822): READ block 78196624 on dm-0
kjournald(529): WRITE block 211136 on dm-0
bash(8336): dirtied inode 7391146 (dmesg) on dm-0
4、统计当前占用IO最高的10个进程:
dmesg |awk -F: '{print $1}'|sort|uniq -c|sort -rn|head -n 10
方法二:
1、安装:wget -c http://linux.web.psi.ch/dist/scientific/5/gfa/all/dstat-0.6.7-1.rf.noarch.rpm
rpm -Uvh dstat-0.6.7-1.rf.noarch.rpm
2、使用:# dstat -M topio -d -M topbio
—-most-expensive—- -dsk/total- —-most-expensive—-
i/o process | read writ| block i/o process
owl_agent 9642B: 439B| 38k 42k|init 8317B: 41B
nginx 0 :2005B| 0 26k|
gmond 0 : 16k| 0 17k|
gmond 0 : 444B| 0 0 |