MongoDB разбился под стрессом - PullRequest
2 голосов
/ 20 февраля 2012

Я тестирую mongodb, и в течение примерно трех недель тестирования mongodb был успешным. Но когда я использую его в своей производственной системе, mongodb падает.

В моем сценарии 13 передний сервер получает веб-запрос через один сервер mongodb, и коллекция mongodb обрабатывает эти запросы на вставку. 650 000 вставок в минуту. И обычно на моем db serverstatus есть 110 соединений mongodb.

Я переименовываю текущую коллекцию каждую минуту, а затем моя старая коллекция создается автоматически. Потому что много запросов поступает с фронтальных серверов. И я каждую минуту перемещаю данные из переименованной коллекции в базу данных SQL Server.

Первые 6 часов все нормально. Но в дальнейшем соединения mongodb ненормально увеличиваются до 3500 соединений. И текущая очередь 1500. И мои передние серверы не могут получить ответ от mongodb.

Почему возникает эта ошибка, у вас есть идеи?

спасибо.

Ответы [ 3 ]

1 голос
/ 25 февраля 2012

Можете ли вы присоединить вывод mongostat в дополнение к логам.Информация, представленная здесь, должна помочь вам понять, какие могут быть узкие места.Более подробную информацию о mongostat можно найти по адресу http://www.mongodb.org/display/DOCS/mongostat.. Какие драйвера SafeMode вы используете в драйвере?Что касается fsync, то Рави говорит о задержке fsync на сервере mongod и, сокращая время между fsyncs, заставляет базу данных чаще фиксировать.Видите ли вы это поведение постоянно в определенное время, указывая на всплеск трафика со стороны вашего клиента?

0 голосов
/ 27 мая 2014

Попробуйте использовать пул соединений MongoDB, чтобы при каждом запросе к mongodb не создавалось новое соединение.

0 голосов
/ 21 февраля 2012

Попробуйте уменьшить -fsync.Есть разница, когда вызывается операция вставки и когда Монго действительно это делает.

...