Mysql вешает сервер. Как этого избежать?

Иногда мой сайт "отключается" из-за того, что Mysql использует все ресурсы, но я думаю, что он не останавливает создание большего количества процессов httpd. Это возможно? Если я перезапускаю apache, эти процессы исчезают, и я вижу, как медленно загружается процессор MySQL, а затем сайт снова подключается.

У меня все равно проблемы с поиском узкого места. На сайте много cronjobs (php-скриптов), и каждый генерирует логи, которые включают общее время выполнения.

Поэтому моей первой мыслью было попытаться найти сценарий, который занимал много времени, но это было невозможно, поскольку только один из них замедляет работу сервера MySQL, чтобы все они увеличили время выполнения.

Любой совет?

Где я могу узнать, как найти узкие места?

Примечание: я нахожусь на CentOS, Apache 2, PHP 5.3 и MySQL 5

1 ответ

Решение

Вы должны начать с медленного журнала запросов: 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';
Другие вопросы по тегам