我使用 Dotdeb 存储库中的 Debian 6.0.3 x86_64 和 MySQL 5.5.20-1~dotdeb.0-log。根据此图,MySQL 进程几个小时前开始消耗大量“sy”CPU 时间。我无法连接到正在运行的mysqld
进程,不得不终止它。我在日志中没有发现任何有用的东西。我的设置似乎很常见(我假设 Dotdeb 只是重新分发现有的 MySQL 版本)而且我以前从未见过这样的事情。这可能的根本原因是什么?我怎样才能防止将来出现这种情况?
我使用 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
with-c
。该
-T
选项在每次系统调用后打印一个时间增量,让您知道花费了多长时间。如果您看到特定的呼叫,例如stat()
和open()
花费很长时间,您可以推断出一件事,如果您看到像semop()
或poll()
花费很长时间的呼叫,您可以推断出另一件事。看到很多它们也是如此,但这可能更难看出下一个选项是从哪里来的。该
-c
选项会等到程序完成或您中断,ctrl-c
然后打印所有系统调用的摘要以及每种类型花费的时间。运气好的话,这应该让您知道 MySQL 在做什么。然后你只需要弄清楚该怎么做。