2012-02-04 12 views
5

Sto lavorando con MongoDB su un VPS CentOS a 32 bit con 1 GB di memoria interna. Funziona bene la maggior parte del tempo, ma di tanto in tanto si verificano picchi di utilizzo della memoria e si blocca il mio server.MongoDB utilizza troppa memoria

C'è un modo per impedirlo, ad esempio limitando la memoria e la CPU utilizzate dal demone MongoDB?

Stavo pensando di eseguire il demone Mongo con ionice e dandogli una priorità bassa, ma non sono sicuro se ciò funzionerebbe.

Qualsiasi aiuto o puntatori sono i benvenuti!

+0

Wow, interessante. Probabilmente dovresti postare questo sulla mailing list mongoDB –

risposta

4

Attualmente non è possibile limitare la quantità di memoria. MongoDB utilizza il meccanismo memory-mapped file per accedere ai file di dati. Pertanto, la quantità di memoria utilizzata è gestita dal sistema. Più dati tocchi, più RAM hai bisogno.

+1

Come conseguenza dell'utilizzo di file mappati in memoria, [MongoDB su sistemi a 32 bit sarà limitato a circa 2 gigabyte di dati] (http://blog.mongodb.org/post/137788967/32-bit-limitazioni). Si consiglia di considerare l'utilizzo di una macchina a 64 bit per il proprio database. – dcrosta

+0

@dcrosta: vero, ho dimenticato di dirlo. –

+0

SergioTulentsev, dcrosta, grazie per i suggerimenti! è un ambiente di test con un budget limitato ma la produzione sarà su un sistema a 64 bit molto più pesante di questo quindi suppongo che il problema verrà risolto una volta trasferito il progetto (a patto che aggiungo altro hardware quando necessario) –

2

Suppongo che tu stia eseguendo tutto il resto su quello stesso server?

In realtà, il modo migliore per eseguire mongo è di metterlo sul proprio server, dove cose come apache, mysql, ecc. Non saliranno e interferiranno con la RAM che vuole usare. Anch'io ho avuto lo stesso problema: il server andava in swap e si strozzava di tanto in tanto, con un uso intenso.

Probabilmente starai meglio con due server da 512 MB che si spera siano comparabili nel prezzo (uno in esecuzione mongo e uno in esecuzione il resto). Ho anche pensato di provare a far girare una VM con Mongo all'interno del VPS, ma per me è caduta nella categoria "troppo sforzo".

E sì, come dcrosta dice, utilizzare a 64 bit, a meno che non si vuole limitare la dimensione dei dati a meno di 2 GB (e perché si vuole farlo?)

+0

Hey Wes, grazie per questo . Il server è per lo sviluppo quindi non c'è budget per configurazioni complicate, ma l'ambiente di produzione sarà molto più pesante, quindi per quanto riguarda i problemi di lettura dovrebbe essere risolto una volta su un sistema a 64 bit! –

1

ho avuto problemi simili, quando ho Stavo usando molte mappe/riduci dove spesso si verificavano perdite di memoria e crash. Non uso più map/reduce e non ci sono perdite di memoria/arresti anomali per molti mesi.

Problemi correlati