MySQL Total Client Connection почему без конца увеличивается?

Доброго дня.

Есть два сервера, на одном apache/php, на втором сервере mysql 5.5,41.

Последнее время сталкиваемся с таком проблемой что MySQL Total Client Connection без конца увеличивается вплоть до самого лимита.

MySQL Workbench => Dashboard
bec411341370441fab1911cffbec1c81.JPG

На сколько я понимаю, проблема заключается в том, что соединения с БД открываются, но не закрываются, верно?
Если это так, то как найти какие именно соединения? От какого пользователя? Если это не закрытые соединения, то почему они сами по через некоторое время по timeout не закрываются?

Буду очень признателен если подскажите мне в каком направлении искать проблему.
  • Вопрос задан
  • 287 просмотров
Пригласить эксперта
Ответы на вопрос 2
@polozad
Вероятно, у вас бэкенд написан настолько криво, что не использует pool соединений, открывая каждый раз новое и не закрывая по итогу. В mysql есть стандартная настройка устаревания соединений - через 8 часов коннекшн сбрасывается. Смотрите код бэкенда, пинайте программиста, читайте php.net/manual/ru/mysqlnd-ms.pooling.php
В самом mysql можно запросить show processlist и поглазеть на конкретные процессы.
А ещё вероятнее, у вас mod_php. В таком случае можно перейти на nginx+php-fpm.
Ответ написан
Комментировать
@ollisso
1. смотрим show processlist и смотрим, в каком состоянии процессы.
Если висит запрос - оптимизируем его, отключаем и тп.

2. если запрос не висит, а просто открытый конект, то смотрим, какой тип подключения вы используете: mysqli, mysql_connect, mysql_pconnect, pdo.

если вы используете постоянные конекты (mysql_pconnect и тому подобные) - то возмонжо вам стоит перейти на обычные конекты.
Так же, возможно вам стоит поменять mpm в апаче.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы