У меня есть приложение с пулом подключений к MySQL. В какой-то момент на производстве каждые 1-3 секунды какой-то сокет закрывается. В результате мое приложение перезапускает это соединение.
Это довольно большой пул из 30 подключений / серверов приложений, взаимодействующих с одним экземпляром MySQL. Всего на стороне базы данных возможно 1000 подключений.
Когда я перезапускаю процесс приложения, проблема исчезает. Я ищу почему-то подключенные к сокетам, файловым дескрипторам, ядру .. Приложения открывают и закрывают ~ 10-30 соединений каждую секунду, чтобы было около 4-5к входящих соединений.
Как этого избежать?
lsof -nPi tcp
сообщает о 5k подключениях (и правильном количестве исходящих в mysql).
/proc/sys/net/ipv4/ip_local_port_range
показывает от 10k до 60k доступных портов
ulimit -n установлен на большое число (100k)
Vmstat не показывает свопинга. У меня 50% ЦП и 25% памяти.
Что я могу проверить дальше? Как это исправить?