Mysql挂断了服务器。 如何避免这一点?

有时候我的网站因为Mysql耗费了所有资源而“倒台”,但是我认为它不会停止创build更多的httpd进程。 那可能吗? 如果我重新启动apache,这些进程消失,我可以看到由mysql进程的CPU消耗缓慢下降,然后该站点再次联机。

无论如何,我无法find瓶颈。 该网站有很多cronjobs(php脚本),每个生成日志,其中包括总执行时间。

所以我的第一个想法是试图find花了很多时间的脚本,但这是不可能的,因为它只需要其中一个放慢MySQL服务器,让他们都增加了他们的执行时间。

有什么build议?

我在哪里可以学习如何find瓶颈?

注:我在CentOS,Apache 2,PHP 5.3和MySQL 5

您应该从慢查询日志开始: http : //dev.mysql.com/doc/refman/5.1/en/slow-query-log.html

您可能还想检查max_used_connections是否高于max_connections:

SHOW VARIABLES LIKE 'max\_connections'; SHOW STATUS LIKE 'max\_used\_connections';