PHP/mySQL: как отладить ошибку "слишком много соединений"?
Я сейчас работаю с веб-сайтом PHP на выделенном сервере моего клиента, и я периодически получаю сообщение об ошибке too many connections
но ~5 пользователей просматривают эту страницу.
В phpMyAdmin
я могу увидеть это max connections
переменная установлена в 400
,
На нашем локальном сервере MySQL в моей корпорации у нас есть max connections
установлен в 200
и другие товарищи одновременно используют этот сервер.
Я слышал, что на их сервере какая-то другая сеть использует тот же MySQL с большим трафиком.
Вот мои вопросы:
- Как отладить эту проблему?
- Могу ли я посмотреть список SQL-запросов, выполненных за последние 10 минут, чтобы проверить, является ли это нашей проблемой или их?
1 ответ
Симптомы, которые вы описываете, указывают на постоянные связи. В некоторых установках PHP не очень хорошо обрабатывает постоянные соединения: он стремится открывать новые соединения, а не повторно использовать существующие. Я предлагаю вам отключить эту функцию и посмотреть, сохраняется ли проблема:
- На уровне кода: найдите вызовы mysql_pconnect() и замените их на mysql_connect ().
- На уровне конфигурации: найдите директиву mysql.allow_persistent и установите для нее значение false.
Если вы заметили улучшение, вы можете попытаться настроить постоянные вызовы или навсегда избавиться от них.