MongoDB - слишком много ошибок подключения - PullRequest
0 голосов
/ 01 февраля 2012

Мы разработали модуль чата с использованием node.js () и шардинга Монго и перешли на рабочий сервер. Но сегодня он достиг 20000 соединений в mongodb и получил ошибку «Слишком много соединений» в логах. После этого мы перезапустили сервер узла и снова запустили. теперь это приходит нормально. Но мы должны знать, как решить эту проблему немедленно.

Любая конфигурация позволяет установить ее в mongodb, чтобы разорвать соединение, если оно не используется, или установить время истечения при установлении соединения.

Пожалуйста, помогите нам закрыть эту проблему.

С уважением, Kumaran

1 Ответ

2 голосов
/ 01 февраля 2012

Возможно, вы не столкнулись с проблемой MongoDB. Существует ограничение на количество подключений к MongoDB, которое обычно приблизительно равно максимальному количеству файловых дескрипторов, доступных для него.

Похоже, что в вашем коде (вероятно) или в мангусте (менее вероятно) есть ошибка, которая либо создает больше соединений, чем закрывает, либо вообще не закрывает соединения. Например, в Java создание нового экземпляра класса "Mongo" для каждого запроса может привести к такого рода проблемам, но я не работаю с node.js / mongoose, поэтому я не знаю, что такое эквивалент JS.

Следите за mongostat и проверьте, всегда ли увеличивается количество соединений или иногда оно уменьшается. Если это первое, ваш код никогда не освобождает соединения по любой причине. Если это последнее, вы просто создаете их быстрее, чем отключаются пустые соединения. Обычно это происходит из-за того, что для каждого запроса требуется нечто большее (например, драйвер, инициализирующий пул соединений), а не один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...