MongoDB использует слишком много памяти - PullRequest
5 голосов
/ 04 февраля 2012

Я работаю с MongoDB на 32-битном VOS CentOS с 1 ГБ встроенной памяти.Большую часть времени он работает нормально, но время от времени его использование приводит к скачкам и сбоям в работе моего сервера.

Есть ли способ предотвратить это, например, ограничив память и ЦП, которые использует демон MongoDB?

Я думал о запуске демона Mongo с ionice и предоставлении ему низкого приоритета, но я не уверен, что это сработает.

Любая помощь или указатели приветствуются!

Ответы [ 3 ]

4 голосов
/ 04 февраля 2012

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

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

Полагаю, вы все еще запускаете на этом же сервере?

Действительно, лучший способ запустить mongo - это разместить его на своем собственном сервере, где такие вещи, как apache, mysql и т. Д. Не будут подпрыгивать и мешать оперативной памяти, которую он хочет использовать. У меня была та же самая проблема - сервер периодически включался в режим подкачки и задыхался при интенсивном использовании.

Вам, вероятно, будет лучше с двумя серверами по 512 МБ, которые, мы надеемся, сопоставимы по цене (один работает под управлением Монго, а другой - под управлением остальных). Я также думал о попытке запустить виртуальную машину с монго на VPS, но для меня это попало в категорию «слишком больших усилий».

И да, как говорит dcrosta, используйте 64-битную версию, если только вы не хотите ограничить размер данных до 2 ГБ (и зачем вам это нужно?)

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

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

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