2012-07-23 14 views
5

Quiero usar mongodb para mi nuevo proyecto. el problema es que mongo usa archivos preacatariados:mongo db --smallfiles switch inconvenientes

Cada archivo de datos se asigna previamente a un tamaño particular. (Esto se hace para evitar la fragmentación del sistema de archivos, entre otras razones). El primer nombre de archivo para una base de datos es .0, luego .1, etc. .0 será 64MB, .1 128MB, etcétera, hasta 2GB. Una vez que los archivos alcanzan un tamaño de 2 GB, cada archivo sucesivo también es de 2 GB. Por lo tanto, si el último archivo de datos presente es, digamos, 1GB, ese archivo puede estar vacío en un 90% si se creó recientemente.

desde aquí: http://www.mongodb.org/display/DOCS/Excessive+Disk+Space

Y es normal tener muchos archivos de 2 GB con nada en él. hay un interruptor --smallfiles, para limitar estos archivos hasta 512 MB

--smallfiles => Usar un tamaño más pequeño archivo inicial (16 MB) y el tamaño máximo (512)

quiero saber usar smallfiles es bueno para la producción? y cuales son sus inconvenientes

no hay interruptor prealloc pero no es bueno en producción. pero no hay una nota sobre pequeños archivos.

Respuesta

6

Por lo general, solo utilizará archivos pequeños si está creando una gran cantidad de bases de datos, si solo está operando en unas pocas bases de datos, no lo ahorra lo suficiente como para meterse con ellos.

No hemos visto ningún problema de rendimiento con los clientes que tienen muchos, muchos DBS (y se benefician realmente de archivos pequeños). Sin embargo, su nivel de actividad suele ser algo bajo en comparación con otras instalaciones. Según lo que está haciendo Mongo, puede ser un poco más lento realizar algunas operaciones, pero no creo que lo notes nunca.

+2

Otra nota aquí, es que --smallfiles es bueno para los árbitros - un árbitro suele preasignar una gran cantidad de archivos (diario, por ejemplo) cuando se inicia, porque al inicio no lo hace sin embargo, sé que es un árbitro. –

+2

@ Adamco Buen punto, pero también puede cambiar el diario (nojournal = verdadero) para un árbitro. – Mattias

1

Además, si se ejecuta en la nube de AWS y utiliza las instancias m3.small con SSD, está limitado a 4 GB de almacenamiento. Establecer esta opción le permitirá tener un pequeño nodo mongodb respaldado por SSD. Podría ser suficiente para tareas pequeñas

+0

tuve un problema con tener poco espacio en mi blog/foro y obtuve 3GB gratis de 20GB, por lo que smallfiles parece ser una buena idea, piense en usar pequeños archivos en pequeños blogs/foros, y luego cambie a archivos no pequeños en mayores sitios a medida que crecen – wiak

Cuestiones relacionadas