MySQL占用大量CPU资源到100%

生产上的MySQL5.6的库,一直都很正常的运行,从昨天下午开始,服务器CPU资源100%,开始我还以为是其它应用占用了CPU资源,一段时间后应该会放开,直到今天早上,CPU还仍然是100%,这就让我很疑惑了。

赶紧上去查看一下:

#top

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

15232 mysql 20 0 2779m 2.3g 0 S 197.1 29.1 80573:31 mysqld

果然,CPU被MySQL占完了,业务部门也反应系统查询很慢。

我就呵呵了,这平时跑着都正常,怎么突然就100%了。

mysql>show processlist;

然后就发现某台服务器正在用一个我没见过的账号在查询,状态一直是Sending data,而且有好几条。

去mysql-slow.log里翻一下,嗯,是有这么一条select语句。

二话不说,问开发有没有用那个MySQL的账号,回答说有,直接把SQL语句丢过去,然后在MySQL里kill掉那些一直Sending data的查询:

mysql>kill xxxxx;

进程号在你show processlist的时候就有,直接干掉,然后再出来top一下,嗯,CPU已经恢复正常了。