一方法:
本机测试通过
抓哪个进程干坏事前要先停掉syslog/etc/init.d/syslog stop
echo 1 > /proc/sys/vm/block_dump
dmesg | egrep "READ|WRITE|dirtied" | egrep -o '([a-zA-Z]*)' | sort | uniq -c | sort -rn | head
1423 kjournald
1075 pdflush
209 indexer
3 cronolog
1 rnald
1 mysqld
不要忘记在抓完之后关掉block_dump和启动syslog
echo 0 > /proc/sys/vm/block_dump
/etc/init.d/syslog start
二方法:
经常碰见服务器IO比较慢,这个是最不能忍受的,因为基本的命令行操作都会非常慢。网上搜了下,可以按照这个方式直接找出耗IO最高的进程名。
1.先停掉syslog然后打开block dump service syslog stop echo 1 > /proc/sys/vm/block_dump 2.从dmesg的中找到消耗IO的进程 dmesg | grep -E "READ|WRITE|dirtied" | grep -E -o '([a-zA-Z]*)' | sort |uniq -c|sort -k1 -gr
排前的比较占用io。如果只想关系到读或者写的也可以直接只搜READ和WRITE。 3