Здравствуйте.
Есть два VPS-сервера, условно VPS-1 (центральный) и VPS-N (воркер).
На воркере есть 120+ php-worker'ов постоянно соединённых с MySQL Базой на центральном сервере.
Для взаимодействия с базой используется Doctrine ORM (Symfony).
Время от времени процессы падают с ошибкой:
PHP Fatal error: Uncaught Doctrine\ORM\ORMException: The EntityManager is closed. in /var/www/html/vendor/doctrine/orm/lib/Doctrine/ORM/ORMException.php:144
Stack trace:
#0 /var/www/html/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php(756): Doctrine\ORM\ORMException::entityManagerClosed()
#1 /var/www/html/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php(589): Doctrine\ORM\EntityManager->errorIfClosed()
#2 /var/www/html/worker/Worker.php(133): Doctrine\ORM\EntityManager->persist(Object(App\Entity\Account))
#3 [internal function]: shutdown(Array)
#4 {main}
thrown in /var/www/html/vendor/doctrine/orm/lib/Doctrine/ORM/ORMException.php on line 144
По ошибке видно, что соединение было разорвано, но прямо перед местом куда ссылается ошибка есть следующий код:
if ($this->em->getConnection()->ping() === false) {
$this->em->getConnection()->close();
$this->em->getConnection()->connect();
}
//... ->persist($account)
Изменял max_connections, сейчас:
SHOW VARIABLES LIKE "max_connections";
Показывает:
max_connections 4190
Система на обоих серверах:
Ubuntu 18.04 (LAMP), база данных MySQL, php 7.2
Что это может быть и какие лимиты системы или Mysql могут мешать работе?
UPD 1:
Лог MySQL на центральном сервере (на сервере-воркере пустой):
2020-02-06T13:53:15.778279Z 14323 [Warning] IP address 'IP_СЕРВЕРА' could not be resolved: Name or service not known
2020-02-06T13:53:15.792611Z 14323 [Note] Access denied for user 'serviced'@'IP_СЕРВЕРА' (using password: YES)
2020-02-06T15:02:37.363830Z 13961 [Note] Aborted connection 13961 to db: 'БАЗА_ДАННЫХ' user: 'root' host: 'IP_СЕРВЕРА' (Got an error reading communication packets)
2020-02-06T15:02:37.363975Z 13960 [Note] Aborted connection 13960 to db: 'БАЗА_ДАННЫХ' user: 'root' host: 'IP_СЕРВЕРА' (Got an error reading communication packets)
2020-02-06T18:11:13.234979Z 15933 [Note] Got timeout reading communication packets