sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Qué significa encajar el conjunto de trabajo en la RAM para MongoDB?

"Conjunto de trabajo" es básicamente la cantidad de datos E índices que estarán activos/en uso por su sistema.

Entonces, por ejemplo, suponga que tiene datos de 1 año. Para simplificar, cada mes se relaciona con 1 GB de datos, lo que da un total de 12 GB, y para cubrir el valor de los datos de cada mes, tiene 1 GB de índices nuevamente por un total de 12 GB para el año.

Si siempre accede a los datos de los últimos 12 meses, entonces su conjunto de trabajo es:12 GB (datos) + 12 GB (índices) =24 GB.

Sin embargo, si solo accede a los datos de los últimos 3 meses, entonces su conjunto de trabajo es:3 GB (datos) + 3 GB (índices) =6 GB. En este escenario, si tuviera 8 GB de RAM y luego comenzara a acceder regularmente a los datos de los últimos 6 meses, entonces su conjunto de trabajo comenzaría a exceder su RAM disponible y tendría un impacto en el rendimiento.

Pero, en general, si tiene suficiente RAM para cubrir la cantidad de datos/índices a los que espera acceder con frecuencia, estará bien.

Editar:Respuesta a la pregunta en los comentarios
No estoy seguro de entenderlo bien, pero intentaré responder. En primer lugar, el cálculo del conjunto de trabajo es una "cifra aproximada". En segundo lugar, si tiene (por ejemplo) un índice de 1 GB en user_id, solo la parte de ese índice a la que se accede comúnmente debe estar en la RAM (por ejemplo, suponga que el 50% de los usuarios están inactivos, entonces 0,5 GB del índice serán más frecuentes). requerido/necesario en RAM). En general, cuanta más RAM tenga, mejor, especialmente porque es probable que el conjunto de trabajo crezca con el tiempo debido al mayor uso. Aquí es donde entra en juego la fragmentación:divida los datos en varios nodos y podrá escalar horizontalmente de manera rentable. Luego, su conjunto de trabajo se divide en varias máquinas, lo que significa que se puede mantener más en la RAM. ¿Necesitas más memoria RAM? Agregue otra máquina a la que fragmentar.