不时加载我的服务器(centos 4)跳到15或更多。 我需要发现哪个进程导致这个高负载的服务器。 那有什么脚本可以处理这个吗? 我认为它是由mysql造成的,所以即使发现sql查询也会有很大的帮助。
通常由磁盘I / O引起的高服务器负载。 有一些方法可以确定哪个进程正在等待磁盘I / O:
iotop top -b -i -n 10 atop ,然后按D键 htop – > F2添加2列IO_RBYTES和IO_WBYTES ,然后F6进行sorting 你应该特别注意D状态的过程(不间断睡眠):
watch "ps -eo pid,user,state,command | awk '\$3 == /D/ { print \$0 }'"
SHOW FULL PROCESSLIST\G
寻找一个运行时间长的东西。
然后EXPLAIN看看是否正在进行全表扫描,生成临时表等
否则,你可以使用像免费版本的Jet( http://www.jetprofiler.com/ )
加勒特
如果mysql是高负载的原因,那么Mysql支持一个slow_query_log参数,一旦启用,它会将任何特别慢的查询logging到文件;
http://dev.mysql.com/doc/refman/5.7/en/slow-query-log.html
慢速查询日志由执行超过long_query_time秒的SQL语句组成,并且至less需要检查min_examined_row_limit行。 long_query_time的最小值和默认值分别为0和10。