MySQL开始消耗大约40%的系统CPU时间,突然没有响应

我使用Dotdeb存储库中的Debian 6.0.3 x86_64和MySQL 5.5.20-1〜dotdeb.0-log。 根据这个图,MySQL进程在几小时前开始消耗大量的“sy”CPU时间。 我无法连接到运行mysqld进程,并不得不杀死它。 我发现没有什么有用的日志。 我的设置似乎是相当普遍的(我认为Dotdeb只是重新分配股票的MySQL版本),我从来没有见过这样的事情。 这可能的根本原因是什么? 今后如何防止这种情况呢?

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

-T选项会在每次系统调用后打印一个时间增量,让您知道需要多长时间。 如果你看到像stat()open()的长时间的特殊调用,你可以推断出一件事,如果你看到像semop()poll()的很长时间,你可以推断出其他的东西。 看到他们中的很多人也是一样,但是这可能更难以看出下一个选项的来源。

-c选项会一直等到程序结束,或者用ctrl-c打出来,然后打印所有系统调用的摘要以及每种types花费的时间。

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