2010-08-23 7 views
27

He leído la documentación de MongoDB y viene con una advertencia sobre los sistemas de 32 bits; particularmente que tienen un límite de 2 GB de memoria RAM disponible para Mongo.¿Feasability de funcionar MongoDB en Linode 512 VPS?

Así que me preguntaba si esa declaración significaba algo en lo que respecta a la ejecución de MongoDB en una configuración de memoria baja como Linode de 512 mb de RAM basado en VPS. Dudo que importe, pero con una distribución de 64 bits para agregar recursos más tarde.

¿Alguna advertencia o alguien recomendaría un mínimo de RAM para elegir en un VPS para MongoDB? Sé que los requisitos del proyecto forman parte de esto, pero me refiero a lo mínimo en el sentido de que sería ridículo prescindir de él, incluso para hacer girar MongoDB.

+2

Wow, sus documentos dicen "32-bit construye se limitan a alrededor de 2 GB de datos." Y aquí estaba pensando que "datos" era espacio en disco. Eso sería un desastre. Casi completamente abandonado Mongo en ese mismo momento. Estoy tan contento de haber visto esta pregunta. – Joe

Respuesta

26

Lo uso en algunos sitios de producción pequeños que se ejecutan dentro de mi Linode 512 &, apenas utiliza memoria, solo unos 5 - 6MB. Mi conjunto de datos es muy pequeño por ahora.

MongoDB utiliza un motor de almacenamiento de memoria mapeado, lo que significa que depende de la memoria caché del sistema operativo para mantener los datos de uso frecuente en la memoria.

http://www.mongodb.org/display/DOCS/Caching

A menos que tenga un gran conjunto de datos para comenzar con, un Linode 512 debería estar bien.

Lo único que me preocupa un poco al investigar esto es que MongoDB parece bloquearse cuando se queda sin memoria, sin mucha advertencia. También es difícil precisar exactamente la cantidad de memoria o espacio en disco que utilizará proporcionalmente a la cantidad de datos que tiene. Tampoco hay forma de especificar límites duros, a costa de un rendimiento degradado. Es algo que probablemente desee supervisar.

Puede intentar ejecutar MongoDB con las opciones --smallfiles --noprealloc, ya que esto permite que los archivos de base de datos más pequeños comiencen y no los asignen previamente, ahorrando espacio en disco si tiene un pequeño conjunto de datos.

Aquí es la experiencia de un usuario:

http://groups.google.com/group/mongodb-user/browse_thread/thread/223810a749f0e1eb

Desafortunadamente no se resolvió ese hilo, habría sido agradable si tenían una razón para el accidente.

Esto también es bueno para leer:

http://groups.google.com/group/mongodb-user/browse_thread/thread/2646a52c4f41d832/d43f3ba7bbbbd63d

+0

Ok, gracias Klinky :) Leeré esos enlaces y me aseguraré de obtener un conocimiento profundo de los términos involucrados. – RayTFM

+1

Es probable que el bloqueo sea causado por el asesino OOM del sistema. Eche un vistazo a http://www.mongodb.org/display/DOCS/The+Linux+Out+of+Memory+OOM+Killer – thoaionline

+0

Puede ser una buena idea crear un archivo de intercambio, Linode se ejecuta en SSD por lo que es no tan terriblemente lento. Siempre es mejor tener un pequeño retraso con mucha carga que bloquear completamente MongoDB. Y asegúrese de ajustar 'vm.swappiness' para que no golpee SSD a menos que sea absolutamente necesario. –

Cuestiones relacionadas