抓哪个进程干坏事前要先停掉syslog
service syslog stop打开block dump:echo 1 > /proc/sys/vm/block_dump统计:dmesg | egrep "READ|WRITE|dirtied" | egrep -o '([a-zA-Z]*)' | sort | uniq -c | sort -rn | head1423 kjournald1075 pdflush209 indexer3 cronolog1 rnald1 mysqld不要忘记在抓完之 后关掉block_dump和启动syslog:echo 0 > /proc/sys/vm/block_dumpservice syslog start加个有人写了一个perl脚本来处理输出,能得到更直观的结果:参考:http://www.xaprb.com/blog/2009/08/23/how-to-find-per-process-io-statistics-on-linux/wget http://aspersa.googlecode.com/svn/trunk/iodumpecho 1 > /proc/sys/vm/block_dumpwhile true; do sleep 1; dmesg -c; done | perl iodumproot@kanga:~# while true; do sleep 1; dmesg -c; done | perl iodump^C# Caught SIGINT.TASK PID TOTAL READ WRITE DIRTY DEVICESfirefox 4450 4538 251 4287 0 sda4, sda3kjournald 2100 551 0 551 0 sda4firefox 28452 185 185 0 0 sda4kjournald 782 59 0 59 0 sda3pdflush 31 30 0 30 0 sda4, sda3syslogd 2485 2 0 2 0 sda3firefox 28414 2 2 0 0 sda4, sda3firefox 28413 1 1 0 0 sda4firefox 28410 1 1 0 0 sda4firefox 28307 1 1 0 0 sda4firefox 28451 1 1 0 0 sda4