我使用 Debian 6.0.3 x86_64 和 Dotdeb 存储库中的 MySQL 5.5.20-1~dotdeb.0-log。根据这图表。我无法连接到正在运行的mysqld
进程,因此不得不将其终止。我在日志中找不到任何有用的信息。我的设置似乎很常见(我假设 Dotdeb 只是重新分发了库存 MySQL 版本),我以前从未见过这样的情况。这种情况的可能根本原因是什么?我如何才能在将来防止这种情况发生?
答案1
如果再次发生,请运行strace -p <PID> -T
或将其替换-T
为-c
。
此-T
选项会在每次系统调用后打印一个时间增量,让您知道它花了多长时间。如果您看到像stat()
和这样的特定调用open()
花费了很长时间,您可以推断出一件事,如果您看到像semop()
或poll()
这样的调用花费了很长时间,您可以推断出另一件事。看到很多这样的调用也是如此,但这可能更难看出下一个选项的作用所在。
该-c
选项会等到程序完成或者您退出ctrl-c
,然后打印所有系统调用的摘要以及每种类型所花费的时间。
运气好的话,这应该会让你知道 MySQL 正在做什么。然后你只需要弄清楚该怎么做。