2017-01-12 3 views
0

Мне не удалось создать репликацию, т. Е. Rs.initiate(), когда значение oplog имело значение по умолчанию. У моего сервера было более 400 ГБ свободного места. В официальной документации MongoDB в default range для ТСМА составляет 5% свободного дискового пространства между 990MB до 50GB, но here под Использование памяти: -Не удалось запустить сервер mongod со значением по умолчанию oplog при попытке репликации

С MMAPv1, MongoDB автоматически использует все свободной памяти на машине в качестве кэша.

Ошибка на консоли при выполнении rs.initiate() после запуска mongod без каких-либо oplog вариантов размера:

ММАП не удалось с из памяти

"ErrMsg": «не может инициировать : файл /data/0/local.7 открыть/создать не удалось в createPrivateMap (смотрите в журнале для получения дополнительной информации)»

Итак, я начал mongod с --oplogSize +4096 только после чего я был в состоянии сделать RS .ini tiate. Теперь я знаю проблемы с небольшим размером oplog, но я хочу, что именно произошло в фоновом режиме. 5% свободного места на диске или 50 ГБ верхней границы, в любом случае на моем сервере все еще было неплохое 300 ГБ.

ответ

0

У вас закончилась память!
Да, монго будет использовать (в конечном итоге) всю память, что доступно. Проблема здесь в том, что при правиле 5% создание этих файлов базы данных local.x требовало большего объема памяти, что у вас было в наличии эта точка (по времени).

С параметром oplogSize вы ограничиваете oplog меньшим размером, и в этом случае у вас достаточно памяти для создания этих файлов.

Параметр --smallfiles (storage.mmapv1.smallFiles) является вашим другом в этом случае.

+0

Использование --smallfiles тоже не помогло, только когда я предоставляю размер -oplog, он работает. Сколько памяти, по вашему мнению, используется и как это проверить? Как уже упоминалось, доступно свободное место на 400 + ГБ. –

+0

Сколько (небольшой) памяти имеет ваш сервер? У меня никогда не было сервера admin mongo, у которого так мало памяти, что у него «закончится память». Когда вы протестировали это --smallfiles, у вас был пустой datadir? – JJussi

+0

У меня почти 400 ГБ пространства на моих серверах, но mongodb начинался только с размером затвора 6 ГБ. Да, --smallfiles используется с пустым datadir, но без размера oplog. Только когда я предоставляю размер oplog 6 ГБ или ниже всех конфигураций. –

Смежные вопросы