MySQL 开始消耗大约 40% 的系统 CPU 时间并突然无响应

Ale*_*lex 2 mysql central-processing-unit cpu-usage

我使用来自 Dotdeb 存储库的 Debian 6.0.3 x86_64 和 MySQL 5.5.20-1~dotdeb.0-log。根据图,MySQL 进程在几个小时前开始消耗大量“sy”CPU 时间。我无法连接到正在运行的mysqld进程,不得不杀死它。我在日志中没有发现任何有用的东西。我的设置似乎很常见(我假设 Dotdeb 只是重新分发库存的 MySQL 版本)而且我以前从未见过这样的事情。这可能的根本原因是什么?我如何才能防止将来出现这种情况?

Lad*_*ada 5

如果再次发生,请运行strace -p <PID> -T或交换-Twith -c

-T选项在每次系统调用后打印一个时间增量,让您知道花费了多长时间。如果您看到特定的电话喜欢stat()open()花费很长时间,您可以推断出一件事,如果您看到喜欢semop()poll()花费很长时间的电话,您可以推断出其他事情。看到很多也是如此,但这可能更难看出下一个选项在哪里。

-c选项一直等到程序完成或您中断ctrl-c,然后打印所有系统调用的摘要以及在每种类型上花费的时间。

运气好的话,这应该会让你知道 MySQL 在做什么。然后你只需要弄清楚该怎么做。