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.

Если вы заметили улучшение, вы можете попытаться настроить постоянные вызовы или навсегда избавиться от них.

Другие вопросы по тегам