查看那个进程消耗IO较大

如果是高版本我们可以使用iotop但是如果版本较低就没这么幸运了,当然我们可以使用如下命令进程查看


要先停掉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

[root@localhost ~]# dmesg | egrep "READ|WRITE|dirtied" | egrep -o '([a-zA-Z]*)' | sort | uniq -c | sort -rn | head
1794 mysqld
789 kjournald
92 pdflush
28 mongod
8 a
5 awk
3 dmesg

2 head



不要忘记在抓完之后关掉block_dump和启动syslog
echo 0 > /proc/sys/vm/block_dump
/etc/init.d/syslog start




前面这一列数字就是对于的线程号,我们可以通过命令来查看详情:

[root@localhost ~]# ps -Lef |grep 1794
mysql 11662 11447 11794 0 326 Jul27 ? 00:00:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var21004 --user=mysql --server-id=21004 --log-slow-queries=/usr/local/mysql/var21004/slowquery.log --log=/usr/local/mysql/var21004/mysql.log --skip-external-locking --skip-name-resolve --back_log=256 --key_buffer_size=2048M --table_cache=512K --max_allowed_packet=16M --table_open_cache=256 --sort_buffer_size=16M --myisam_sort_buffer_size=512M --net_buffer_length=1M --read_buffer_size=8M --read_rnd_buffer_size=4M --join_buffer_size=16M --thread_stack=512K --query_cache_size=128M --thread_concurrency=16 --character-set-server=GBK --wait-timeout=31536000 --max_connections=10000 --max_connect_errors=10000000 --long_query_time=1 --log-error=/usr/local/mysql/var21004/localhost.err --pid-file=/usr/local/mysql/var21004/localhost.pid --socket=/usr/local/mysql/tmp/mysql-21004.sock --port=21004
root 31156 31113 31156 0 1 11:32 pts/0 00:00:00 grep 1794


你可能感兴趣的:(查看那个进程消耗IO较大)