Configuraciones de proceso y almacenamiento para clústeres de núcleo virtual de Azure Cosmos DB for MongoDB
SE APLICA A: núcleo virtual de MongoDB
Los recursos de proceso se proporcionan como núcleos virtuales, que representan la CPU lógica del hardware subyacente. El tamaño de almacenamiento para el aprovisionamiento se refiere a la capacidad disponible para las particiones en el clúster. El almacenamiento se usa para los archivos de base de datos, los archivos temporales, los registros de transacciones y los registros del servidor de bases de datos. Puede seleccionar la configuración de proceso y almacenamiento de forma independiente. Los valores de proceso y almacenamiento seleccionados se aplican a cada partición del clúster.
Proceso en núcleos virtuales de Azure Cosmos DB for MongoDB
La cantidad total de memoria RAM en una sola partición o se basa en el número seleccionado de núcleos virtuales.
Nivel de clúster | Núcleos virtuales | Una partición, GiB RAM |
---|---|---|
M25 | 2 (ampliable) | 8 |
M30 | 2 | 8 |
M40 | 4 | 16 |
M50 | 8 | 32 |
M60 | 16 | 64 |
M80 | 32 | 128 |
M200 | 64 | 256 |
Almacenamiento en núcleos virtuales de Azure Cosmos DB for MongoDB
La cantidad total de almacenamiento que se aprovisiona también define la capacidad de E/S disponible para cada partición del clúster.
Tamaño del almacenamiento, GiB | Número máximo de IOPS |
---|---|
32 | 3500† |
64 | 3500† |
128 | 3500† |
256 | 3500† |
512 | 3500† |
1024 | 5000 |
2 048 | 7 500 |
4095 | 7 500 |
8192 | 16 000 |
16 384 | 18 000 |
32 767 | 20.000 |
† Número máximo de IOPS con expansión de disco libre. El almacenamiento de hasta 512 GiB (inclusive) incluye la expansión de disco libre habilitada.
Maximización de IOPS para la configuración de proceso y almacenamiento
Cada configuración de procesotiene un límite de IOPS que depende del número de núcleos virtuales. Asegúrese de seleccionar la configuración de proceso para el clúster a fin de usar completamente IOPS en el almacenamiento seleccionado.
Tamaño de almacenamiento | IOPS de almacenamiento, hasta | Nivel de proceso mínimo | Número mínimo de núcleos virtuales |
---|---|---|---|
Hasta 0,5 TiB | 3500† | M30 | 2 núcleos virtuales |
1 TiB | 5\.000 | M40 | 4 núcleos virtuales |
2 TiB | 7 500 | M50 | 8 núcleos virtuales |
4 TiB | 7 500 | M50 | 8 núcleos virtuales |
8 TiB | 16 000 | M60 | 16 núcleos virtuales |
16 TiB | 18 000 | M60 | 16 núcleos virtuales |
32 TiB | 20 000 | M60 | 16 núcleos virtuales |
† Número máximo de IOPS con expansión de disco libre. El almacenamiento de hasta 512 GiB (inclusive) incluye la expansión de disco libre habilitada.
Por ejemplo, si necesita 8 TiB de almacenamiento por partición o más, asegúrese de seleccionar 16 núcleos virtuales o más para la configuración de proceso del nodo. Esa selección le permitiría maximizar el uso de IOPS proporcionado por el almacenamiento seleccionado.
Consideraciones sobre el proceso y el almacenamiento
Consideraciones sobre el conjunto de trabajo y la memoria
En el núcleo virtual de Azure Cosmos DB for MongoDB el conjunto de trabajo hace referencia a la parte de los datos a los que las aplicaciones acceden y usan con frecuencia. Incluye los datos y los índices que se leen o escriben periódicamente durante las operaciones típicas de la aplicación. El concepto de un conjunto de trabajo es importante para la optimización del rendimiento, ya que MongoDB, como muchas bases de datos, funciona mejor cuando el conjunto de trabajo se ajusta a la RAM.
Para definir y comprender el conjunto de trabajo de la base de datos de MongoDB, tenga en cuenta los siguientes componentes:
- Datos a los que se accede con frecuencia: estos datos incluyen documentos que la aplicación lee o actualiza periódicamente.
- Índices: los índices que se usan en las operaciones de consulta también forman parte del conjunto de trabajo porque se deben cargar en memoria para garantizar un acceso rápido.
- Patrones de uso de la aplicación: analizar los patrones de uso de la aplicación puede ayudar a identificar a qué partes de los datos se accede con más frecuencia.
Al mantener el conjunto de trabajo en la memoria RAM, puede minimizar las operaciones de E/S de disco más lentas, lo que mejora el rendimiento de la base de datos de MongoDB. Si comprueba que el conjunto de trabajo supera la RAM disponible, puede considerar la posibilidad de optimizar el modelo de datos, agregar más RAM o usar el particionamiento para distribuir los datos entre varios nodos.
Elección de una configuración óptima para una carga de trabajo
La determinación de la configuración correcta de proceso y almacenamiento para la carga de trabajo del núcleo virtual de Azure Cosmos DB for MongoDB implica evaluar varios factores relacionados con los requisitos y los patrones de uso de la aplicación. Entre los pasos y consideraciones clave para determinar la configuración óptima se incluyen los siguientes:
Comprender la carga de trabajo
- Volumen de datos: calcule el tamaño total de los datos, incluidos los índices.
- Proporción de lectura y escritura: determine la proporción de operaciones de lectura con respecto a las de escritura.
- Patrones de consulta: analice los tipos de consultas que realiza la aplicación. Por ejemplo, lecturas simples o agregaciones complejas.
- Simultaneidad: evalúe el número de operaciones simultáneas que necesita controlar la base de datos.
Supervisión del rendimiento actual
- Uso de recursos: utilice herramientas de supervisión para realizar el seguimiento de la CPU, la memoria, la E/S de disco y el uso de red antes de mover la carga de trabajo a Azure y métricas de supervisión una vez que empiece a ejecutar la carga de trabajo de MongoDB en un clúster de núcleo virtual de Azure Cosmos DB for MongoDB.
- Métricas de rendimiento: supervise las métricas de rendimiento clave, como la latencia, el rendimiento y las relaciones de acciones de caché.
- Cuellos de botella: identifique los cuellos de botella de rendimiento existentes, como un uso elevado de la CPU, presión de memoria o E/S de disco lento.
Estimación de los requisitos de recursos
- Memoria: asegúrese de que el conjunto de trabajo (los datos e índices a los que se accede con frecuencia) se ajusta a la RAM. Si el tamaño del conjunto de trabajo supera la memoria disponible, considere la posibilidad de agregar más RAM o de optimizar el modelo de datos.
- CPU: elija una configuración de CPU que pueda controlar los requisitos de carga y simultaneidad de las consultas. Es posible que para las cargas de trabajo con un uso intensivo de CPU se necesiten más núcleos. Use la métrica "Porcentaje de CPU" con la agregación "Máximo" en el clúster de núcleo virtual de Azure Cosmos DB for MongoDB para ver los patrones de uso de proceso históricos.
- IOPS de almacenamiento: seleccione el almacenamiento con suficiente IOPS para controlar las operaciones de lectura y escritura. Use la métrica "IOPS" con la agregación "Máximo" en el clúster para ver el uso histórico de IOPS de almacenamiento.
- Red: asegúrese de disponer del ancho de banda de red adecuado para controlar la transferencia de datos entre la aplicación y la base de datos, especialmente para las configuraciones distribuidas. Asegúrese de configurar el host para la aplicación de MongoDB para admitir tecnologías de redes aceleradas como SR-IOV.
Escala adecuada
- Escalado vertical: escale y reduzca verticalmente el proceso o la memoria RAM, y escale verticalmente el almacenamiento.
- Proceso: aumente el núcleo virtual o la RAM en un clúster si la carga de trabajo necesita un aumento temporal o suele superar el 70 % del uso de CPU durante períodos prolongados.
- Asegúrese de que tiene la retención de datos adecuada en la base de datos de núcleo virtual de Azure Cosmos DB for MongoDB. La retención permite evitar el uso innecesario del almacenamiento. Supervise el uso del almacenamiento configurando alertas en las métricas "Porcentaje de almacenamiento" o "Almacenamiento usado" con la agregación "Máximo". Considere la posibilidad de aumentar el almacenamiento a medida que el tamaño de la carga de trabajo supere el 70 % de uso.
- Escalado horizontal: considere la posibilidad de usar varias particiones para que el clúster a fin de distribuir los datos entre varios nodos de núcleo virtual de Azure Cosmos DB for MongoDB para obtener mejoras de rendimiento y una mejor administración de la capacidad a medida que crece la carga de trabajo. Esto es especialmente útil para conjuntos de datos grandes (más de 2 a 4 TiB) y aplicaciones de alto rendimiento.
- Escalado vertical: escale y reduzca verticalmente el proceso o la memoria RAM, y escale verticalmente el almacenamiento.
Pruebas e iteraciones
- Puntos de referencia: realice la medición de las consultas más usadas con distintas configuraciones para determinar el impacto en el rendimiento. Use métricas de CPU/RAM e IOPS, y puntos de referencia de nivel de aplicación.
- Prueba de carga: realice pruebas de carga para simular cargas de trabajo de producción y validar el rendimiento de la configuración elegida.
- Supervisión continua: supervise continuamente la implementación del núcleo virtual de Azure Cosmos DB for MongoDB y ajuste los recursos según sea necesario en función de los cambios en las cargas de trabajo y los patrones de uso.
Al evaluar sistemáticamente estos factores y supervisar y ajustar de manera continuada la configuración, puede asegurarse de que la implementación de MongoDB está bien optimizada para la carga de trabajo específica.
Consideraciones para el almacenamiento
Decidir el tamaño de almacenamiento adecuado para la carga de trabajo implica varias consideraciones para garantizar un rendimiento y escalabilidad óptimos. Estas son las consideraciones sobre el tamaño de almacenamiento para el núcleo virtual de Azure Cosmos DB for MongoDB:
Estimación del tamaño de los datos:
- calcule el tamaño esperado de los datos del núcleo virtual de Azure Cosmos DB for MongoDB. Tenga en cuenta lo siguiente:
- Tamaño de datos actual: si se realiza la migración desde una base de datos existente.
- Tasa de crecimiento: calcule la cantidad de datos que se agregarán a lo largo del tiempo.
- Tamaño y estructura del documento: comprenda el esquema de datos y los tamaños de documento, ya que afectan a la eficacia del almacenamiento.
- calcule el tamaño esperado de los datos del núcleo virtual de Azure Cosmos DB for MongoDB. Tenga en cuenta lo siguiente:
Factorización de índices:
- el núcleo virtual de Azure Cosmos DB for MongoDB usa índices para realizar consultas eficaces. Los índices consumen espacio adicional en disco.
- Calcule el tamaño de los índices en función de lo siguiente:
- Número de índices.
- Tamaño de los campos indizados.
Consideraciones de rendimiento:
- El rendimiento del disco afecta a las operaciones de base de datos, especialmente para las cargas de trabajo que no pueden ajustar su conjunto de trabajo a la RAM. Tenga en cuenta lo siguiente:
- Rendimiento de E/S: IOPS, o el número de operaciones de entrada y salida por segundo, es el número de solicitudes que se envían a los discos de almacenamiento en un segundo. Cuanto mayor es el tamaño de almacenamiento mayor es la cantidad de IOPS. Asegúrese de tener un rendimiento adecuado para las operaciones de lectura y escritura. Use la métrica "IOPS" con la agregación "Máximo" para supervisar la cantidad de IOPS usada en el clúster.
- Latencia: es el tiempo que tarda una aplicación en recibir una sola solicitud, enviarla a los discos de almacenamiento y enviar la respuesta al cliente. La latencia es una medida crítica del rendimiento de una aplicación, además de las IOPS y del rendimiento. La latencia se define en gran medida por el tipo de almacenamiento usado y la configuración de almacenamiento. En un servicio administrado como Azure Cosmos DB for MongoDB, el almacenamiento rápido, como los discos SSD prémium, se usa con la configuración optimizada para reducir la latencia.
- El rendimiento del disco afecta a las operaciones de base de datos, especialmente para las cargas de trabajo que no pueden ajustar su conjunto de trabajo a la RAM. Tenga en cuenta lo siguiente:
Crecimiento y escalabilidad futuros:
- Planee el crecimiento futuro de los datos y las necesidades de escalabilidad.
- Asigne más espacio en disco más allá de las necesidades actuales para adaptarse al crecimiento sin expansiones de almacenamiento frecuentes.
Cálculo de ejemplo:
- Imagine que el tamaño de los datos iniciales es de 500 GiB.
- Con índices, podría crecer hasta 700 GiB.
- Si prevé duplicar los datos en dos años, planee 1,4 TiB (700 GiB * 2).
- Agregue un búfer para las necesidades operativas, de crecimiento y de sobrecarga.
- Es posible que quiera empezar con almacenamiento de 1 TiB y escalarlo a 2 TiB una vez que su tamaño supere los 800 GiB.
Decidir el tamaño de almacenamiento implica una combinación de estimación de las necesidades actuales y futuras de datos, tener en cuenta la indexación y la compresión, y garantizar un rendimiento y una escalabilidad adecuados. La supervisión y el ajuste periódicos en función del uso real y las tendencias de crecimiento también son cruciales para mantener un rendimiento óptimo de MongoDB.