Назад | Перейти на главную страницу

MySQL PDO Слишком много подключений

У меня есть приложение, которое постоянно вставляет в таблицу статистики. Среднее количество открытых соединений обычно составляет от 20 до 22.

В PHP также есть сценарий обработки, запускаемый cron каждые 30 минут. Примерно в 2 часа ночи по всемирному координированному времени обработка занимает около 10 минут, что является самым продолжительным периодом времени в течение дня.

Примерно в это время я получаю около 8000 PDOException: SQLSTATE[08004] [1040] Too many connections ошибки.

В max_connections установлен на 500.

Я заметил это, делая SHOW PROCESSLIST; Обычно я не вижу запросов в столбце «Информация». Пока cron работает, я вижу запрос для cron в Info столбец, а затем вставки SQL быстро накапливаются под ним.

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

Что может быть причиной этого и какие параметры конфигурации следует изменить?

Можете ли вы проверить параметры ниже? попробуйте увеличить значение max_user_connections и, если приложение долго удерживает соединение, уменьшите wait_timeout.

max_user_connections=[value]
wait_timeout = [value]