MongoDB — слишком много ошибок подключения

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

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

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

С уважением, Кумаран.


person Kumaran    schedule 01.02.2012    source источник


Ответы (1)


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

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

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

person Remon van Vliet    schedule 01.02.2012
comment
Точно правильно говоришь. Мы нашли эту проблему и исправили ее. Спасибо за ваш немедленный ответ. - person Kumaran; 01.02.2012