Что это значит в MongoDB? - PullRequest
       0

Что это значит в MongoDB?

1 голос
/ 05 февраля 2011

Я только что установил MongoDB.У меня нет репликации.Все, что я включил, было авторизацией в файле конфигурации.И я настроил это правильно.

В основном это работает, но в случайные моменты времени он «зависает», и это заставляет мой процессор переходить к LOAD 4.0, когда я выполняю «top».

КогдаЯ просматриваю журнал сообщений и вижу многое из этого:

[DataFileSync] flushing mmap took 0ms for 5 files
[DataFileSync] flushing mmap took 0ms for 5 files
[DataFileSync] flushing mmap took 0ms for 5 files

Это странно, потому что просто зависает и ничего не происходит.Эти сообщения продолжают появляться, и «принятое соединение» больше не появляется.У меня нет репликации, и я не настроил mongo с какими-либо настройками, кроме auth.

Что ж, Mongo однажды вылетел, и я однажды выполнил "sudo reboot", пока mongo еще работал l

Ответы [ 3 ]

2 голосов
/ 05 февраля 2011

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

0 голосов
/ 06 февраля 2011

Эта синхронизация выглядит довольно нормально и занимает всего 0 мс ...

Тем не менее, MongoDB имеет блокировку на уровне базы данных, поэтому она "повесит" всю вашу базу данных, если какая-то операция вызовет блокировку (например, длиннуюзапрос, создание большого индекса и т. д.)

Я бы отключил вашу базу данных и запустил repair .

Вы можете запустить validate сначала... чтобы узнать, найдет ли он что-нибудь ...

> db.mycollection.validate();

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

$ ./mongod --repair

Вы также можете запустить восстановление "вживую", если у вас не слишком большая нагрузка.

> db.repairDatabase();

Вы также можете попробовать и отменить результаты mongostat ...

0 голосов
/ 06 февраля 2011

По умолчанию mongodb будет сбрасывать изменения на диск каждые 60 секунд. Это не должно быть повешено в это время все же.

Какую версию mongodb вы используете?

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