¿Va a ser más lento? ¿Funcionará solo para datos que se ajusten a la memoria RAM? ¿Qué pasará si los índices mongodb son más que RAM?¿Qué pasará, cuando el tamaño del db de mongodb sea mayor que la RAM?
Respuesta
Sobre Mongo
MongoDB utiliza la memoria asignada archivos.
Esto significa que el sistema operativo esencialmente controla lo que se busca dentro y fuera de la memoria (hacia y desde el disco).
Las Reglas
Si sus índices + conjunto de trabajo exceden la memoria, las últimas páginas usadas recientemente (secciones de la memoria) se vuelca en disco. Esto deja solo los datos utilizados más recientemente que todavía se ajustan a la memoria disponibles.
Su sistema operativo controla esto.
Aunque experimentará un rendimiento horrible si su conjunto de trabajo real y los índices no se ajustan a la memoria, en la práctica, el tamaño del conjunto de trabajo (datos activos) es mucho menor que su conjunto de datos total.
Si no infringe esta regla, debe tener un excelente rendimiento la mayor parte del tiempo aunque sus índices + datos totales puedan exceder la memoria total disponible.
Cómo funciona
Si se realiza una consulta que necesita los datos que no está en la memoria, que se localizará en la memoria (recuperado de disco) y habrá un impacto en el rendimiento.
Nota: esta es esencialmente la situación cuando la base de datos se inicia por primera vez (en frío).
No hay nada en la memoria, las fallas de página se producen cuando se requieren datos y los datos se localizan en la memoria según sea necesario. Cuando se queda sin memoria, las últimas páginas usadas recientemente (fragmentos) se vacían de la memoria a favor de datos más recientes (más recientemente accedidos).
También vale la pena mencionar que, debido a que los índices se utilizan constantemente, y por lo tanto siempre se usan recientemente, prácticamente nunca se desplazan.
Si sus índices son más grandes que la memoria RAM disponible, entonces el rendimiento cae rápidamente . El sitio MongoDB específicamente te aconseja "Asegúrate de que tus índices puedan caber en la RAM".
Si sus consultas parecen lentas, debe verificar que sus índices sean lo suficientemente pequeños como para caber en la RAM. Por ejemplo, si está ejecutando en 4 GB RAM y tiene 3 GB de índices, entonces sus índices probablemente no se ajusten a en RAM. Es posible que necesite agregar RAM y/o verificar que todos los índices que ha creado estén siendo utilizados.
- 1. ¿Puede funcionar MongoDB cuando el tamaño de la base de datos es mayor que la RAM?
- 2. MongoDB: tamaño del resultado de la consulta mayor que el tamaño de la colección
- 3. Obtener el tamaño del sistema RAM
- 4. ¿Qué sucede cuando mongodb está sin memoria?
- 5. Ordenando datos más grandes que el tamaño de RAM
- 6. Cargando todo Neo4J db a RAM
- 7. Codeigniter Registro activo: mayor que el enunciado
- 8. ¿Qué hace que el encuadernado sea lento?
- 9. Mongodb - Cambiar nombre db
- 10. ¿Qué pasará con Office VBA?
- 11. ¿Cómo cambiar el tamaño de RAM del emulador de Android desde la línea de comando?
- 12. ¿qué pasará si lo insertamos en dinamo DB con una clave hash duplicada?
- 13. Node.js mongodb define por defecto sea variable
- 14. MongoDB: el tamaño del archivo es enorme y está creciendo
- 15. ¿Cómo hacer que una aplicación swing sea consciente del cambio en el tamaño de la pantalla?
- 16. ¿Qué significa este error: `somefile.c: 200: error: el tamaño del marco de 1032 bytes es mayor que 1024 bytes`?
- 17. ¿Qué significa ajustar "working set" en la memoria RAM para MongoDB?
- 18. ¿Cómo funciona Redis cuando la RAM comienza a llenarse?
- 19. haz que el ancho sea del mismo tamaño que otro elemento html
- 20. ¿Qué significa que la "longitud del encabezado del perfil incrustado es mayor que la longitud de los datos"? error significa?
- 21. ¿Cómo obtener el tamaño de RAM total de un dispositivo?
- 22. ¿Cambia el tamaño del texto de una etiqueta cuando el texto es más largo que el tamaño de la etiqueta?
- 23. Obtenga el tamaño de fuente del iPhone para que sea el mismo que el de otros navegadores
- 24. Obtener la altura del texto de varias líneas con ancho fijo para hacer que el tamaño del diálogo sea correcto
- 25. Android USB Host API: Transferencia mayor tamaño del búfer
- 26. ¿Tamaño de almacenamiento límite de MongoDB?
- 27. ¿Por qué - [UIWebView sizeThatFits:] da un tamaño mayor que document.body.offsetHeight/Width?
- 28. Uso del símbolo mayor que en XML
- 29. ¿Es el tamaño normal para MongoDB?
- 30. Si no se borra la variable ThreadLocal, ¿qué pasará?
No estoy de acuerdo con que "todavía experimentará un rendimiento relativamente alto". En mi experiencia, si el tamaño del índice se acerca o excede el tamaño de la RAM, el rendimiento cae precipitadamente. El sitio web de MongoDB le aconseja mantener el tamaño del índice << tamaño de RAM. –
Es lógico que cuando dije que el rendimiento era bueno si el set de trabajo + los índices están en la memoria, si sus índices ni siquiera caben en la memoria, entonces no tendrá mucho espacio para su conjunto de trabajo y se caerá del "yo" experimentará la categoría de "alto rendimiento", o ¿me perdí algo? –
Su respuesta dice ... "Si sus índices + conjunto de trabajo excede la memoria, ..." y continúa con "Todavía experimentará un rendimiento relativamente alto a menos que esté constantemente tocando cada parte del conjunto de datos". Esa es la parte que es engañosa: no es necesario tocar mucho para obtener un rendimiento terrible una vez que indexa> RAM. –