2012-02-04 8 views
5

Pracuję z MongoDB na 32-bitowym CentOS VPS z 1GB pamięci wewnętrznej. To działa dobrze przez większość czasu, ale co jakiś czas jest to wzrost zużycia pamięci i powoduje awarię mojego serwera.MongoDB używa zbyt dużo pamięci

Czy można temu zapobiec, na przykład ograniczając pamięć i procesor używany przez demona MongoDB?

Myślałem o uruchomieniu demona Mongo z ionice i nadaniu mu niskiego priorytetu, ale nie jestem pewien, czy to zadziała.

Każda pomoc lub wskazówki są mile widziane!

+0

Wow, interesujące. Powinieneś prawdopodobnie zamieścić to na liście mailingowej mongoDB. –

Odpowiedz

4

Obecnie nie jest możliwe ograniczenie ilości pamięci. MongoDB używa mechanizmu memory-mapped file do uzyskiwania dostępu do plików danych. Dlatego ilość używanej pamięci jest regulowana przez system. Im więcej danych dotkniesz, tym więcej pamięci RAM potrzebujesz.

+1

W wyniku użycia plików mapowanych w pamięci, [MongoDB w systemach 32-bitowych będzie ograniczony do około 2 gigabajtów danych] (http://blog.mongodb.org/post/137788967/ograniczenia 32-bitowe). Możesz rozważyć użycie maszyny 64-bitowej do swojej bazy danych. – dcrosta

+0

@dcrosta: prawda, zapomniałem o tym wspomnieć. –

+0

SergioTulentsev, dcrosta, dzięki za wskazówki! jest to środowisko testowe o ograniczonym budżecie, ale produkcja będzie na systemie 64-bitowym znacznie cięższym niż ten, więc domyślam się, że problem zostanie rozwiązany, gdy przeniosę projekt (o ile dodam więcej sprzętu w razie potrzeby) –

2

Zgaduję, że uruchamiasz także wszystko inne na tym samym serwerze?

Naprawdę, najlepszym sposobem na uruchomienie Mongo jest umieszczenie go na własnym serwerze, gdzie rzeczy takie jak Apache, MySQL itp. Nie będą się podnosić i przeszkadzać RAM, z którego chce korzystać. Sam miałem ten sam problem - serwer zamieniał się i dusił się co jakiś czas, przy dużym wykorzystaniu.

Prawdopodobnie lepiej byłoby mieć dwa serwery 512 MB, które, mam nadzieję, są porównywalne pod względem ceny (jeden działający mongo, a drugi działający). Pomyślałem także o próbie uruchomienia maszyny VM z mongo w VPS, ale to było dla mnie kategorią "za dużo wysiłku".

I tak, jak mówi dcrosta, użyj 64-bitowej, chyba że chcesz, aby ograniczyć rozmiar danych na podstawie 2 GB (i dlaczego chcesz to zrobić?)

+0

Hej Wes, dzięki za to . Serwer jest na etapie rozwoju, więc niestety nie ma budżetu na skomplikowane konfiguracje, ale środowisko produkcyjne będzie znacznie większe, o ile to możliwe, problemy z czytaniem powinny zostać naprawione raz na 64-bitowym systemie! –

1

miałem podobne problemy, kiedy korzystałem z dużej ilości map/pomniejszałem tam, gdzie często dochodziło do wycieków pamięci i awarii. Nie używam już map/reduce i od wielu miesięcy nie ma wycieków pamięci/awarii.