找出IO消耗较高的进程

一方法:

本机测试通过

抓哪个进程干坏事前要先停掉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.恢复系统。

     echo 0 > /proc/sys/vm/block_dump     service syslog start


方法三:

2.另外一种:
   1)# sysctl vm.block_dump=1   或者    # echo 1 > /proc/sys/vm/block_dump
   2)dmesg | egrep "READ|WRITE|dirtied" | egrep -o '([a-zA-Z]*)' | sort | uniq -c | sort -rn | head




你可能感兴趣的:(Linux,system)