MySQL 在空闲时占用大量 CPU

MySQL 在空闲时占用大量 CPU

一个 Web 服务器(Apache + MySQL)严重锁定,我不得不关闭电源,然后立即登录查看之后发生了什么。平均负载超过 3%,MySQL 的 CPU 占用率在 20% 到 80% 之间。出于好奇,我在活动高峰期间运行了 SHOW PROCESSLIST;,结果发现...

+-------+--------+-----------+--------+---------+------+-------+------------------+
| Id    | User   | Host      | db     | Command | Time | State | Info             |
+-------+--------+-----------+--------+---------+------+-------+------------------+
| 10762 | root   | localhost | NULL   | Query   |    0 | NULL  | SHOW PROCESSLIST |
| 11754 | phorum | localhost | phorum | Sleep   |    0 |       | NULL             |
| 11755 | phorum | localhost | phorum | Sleep   |    0 |       | NULL             |
| 11756 | phorum | localhost | phorum | Sleep   |    0 |       | NULL             |
| 11758 | phorum | localhost | phorum | Sleep   |    0 |       | NULL             |
| 11759 | phorum | localhost | phorum | Sleep   |    0 |       | NULL             |
| 11761 | elba   | localhost | elba   | Sleep   |    0 |       | NULL             |
| 11763 | phorum | localhost | phorum | Sleep   |    0 |       | NULL             |
| 11764 | phorum | localhost | phorum | Sleep   |    0 |       | NULL             |
| 11765 | phorum | localhost | phorum | Sleep   |    0 |       | NULL             |
| 11766 | phorum | localhost | phorum | Sleep   |    0 |       | NULL             |
| 11767 | phorum | localhost | phorum | Sleep   |    0 |       | NULL    

只是为了好玩,我启用了慢查询日志,但那里什么也没有。此后,平均负载(以及 MySQL 的资源使用率)已回落至正常水平,但仍不清楚发生了什么。

对发生的事情有什么见解吗?如果做不到这一点,我应该记录什么来帮助下次彻底查明真相?

答案1

只是为了好玩,我启用了慢查询日志,但那里什么也没有。

您是否已启用log-queries-not-using-indexes选项?

我还建议您设置long_query_time归零,然后安装Percona 工具包并运行:

pt-query-digest /path/to/the/slow/log | tee $HOME/mysql-slow_`date +%F`.profile

看看会发生什么。

相关内容