Всем привет! Есть приложение и его API, все написано на yii2 фреймворке. Все на отдельных серверах. Проблема в том что при работе MongoDB оставляет не закрытыми коннекты. К примеру, вчера перегружал оба сервера и в коннектах висело всего 20 коннектов, а сегодня утром уже 183 коннекта. Перегружаю php-fpm на серверах все коннекты закрываются, но позже опять все по новой. Подскажите, куда смотреть?
Привет, Нет ничего спец. не ставили не настраивали. Вот что дает phpinfo по Mongodb ext Version 1.6.14 Streams Support enabled SSL Support enabled MONGODB-CR enabled SCRAM-SHA-1 enabled MONGODB-X509 enabled GSSAPI (Kerberos) disabled PLAIN disabled mongo.allow_empty_keys 0 0 mongo.chunk_size 261120 261120 mongo.cmd $ $ mongo.default_host localhost localhost mongo.default_port 27017 27017 mongo.is_master_interval 15 15 mongo.long_as_object 0 0 mongo.native_long 1 1 mongo.ping_interval 5 5 Сегодня по новой, пока не перегрузил fpm так и висели 189 открытых коннектов. Перезагружаешь fpm на всех серверах то коненктов становится 32 и все снова летает.
Посмотрите лог запросов - действительно-ли соединения висят пустыми или же идет выполнение задач. Также выведите список активных соединений: посмотрите что это вообще такое и с какой машины идет соединение с базой: вероятно укажет на проблемный микросервис. Посмотрите где в приложении в регулярных (и не регулярных) задачах могут использоваться эти соединения с нарастающим количеством Если все глухо - выставите фиксированное максимальное количество соединений в монге и выявите таким образом где приложение будет проседать
Спасибо, ваш совет помог найти ошибку. Проблема не в драйвере, не в настройках и даже не в железе. MongoDB с памятью и процессами работает так же хорошо как и php-fpm. Проблема возникда из за бесконечного цикла в одном из участке кода.