經常碰見服務器IO比較慢,這個是最不能忍受的,因爲基本的命令行操作都會非常慢。
網上搜了下,可以按照這個方式直接找出耗IO最高的進程名。
1.先停掉syslog然後打開block dump
service syslog stop
echo 1 > /proc/sys/vm/block_dump
2.從dmesg的中找到消耗IO的進程
# dmesg | egrep "READ|WRITE|dirtied" | egrep -o '([a-zA-Z]*)' | sort | uniq -c | sort -rn | head
排前的比較佔用io。如果只想關係到讀或者寫的也可以直接只搜READ和WRITE。
3.恢復系統。
echo 0 > /proc/sys/vm/block_dump
service syslog start