Atlas usa el escalado automático para el cómputo del clúster a fin de optimizar la utilización de recursos y el costo mediante el ajuste del nivel de clúster. Atlas usa el escalado automático de almacenamiento a fin de aumentar automáticamente la capacidad de almacenamiento del clúster.
En esta sección, puedes aprender sobre lo siguiente:
Escalado automático de nivel de clúster
Atlas utiliza escalado automático reactivo y predictivo para los niveles de clúster. Atlas elige el mecanismo de escalado automático en función del tipo, el nivel y el patrón de carga de trabajo del clúster.
Escalado automático reactivo. Atlas utiliza umbrales, en lugar de predicciones, para activar eventos de escalado según el uso actual de recursos. El escalado automático reactivo se produce tras un uso de recursos alto o bajo sostenido. Para obtener más información, consulte Escalado automático reactivo para el nivel de clúster.
Escalado automático predictivo. Atlas usa aprendizaje automático para anticipar necesidades futuras de escalado a partir de patrones de uso históricos e intenta activar eventos de escalado antes de que llegue el pico de carga previsto.
El escalado automático predictivo es una extensión del escalado automático por nivel de clúster y recurre al escalado automático reactivo. Atlas sigue utilizando el escalado automático reactivo para gestionar picos inesperados de carga de trabajo que no son cíclicos ni predecibles. Atlas utiliza el escalado automático predictivo para los clústeres elegibles. Para obtener más información, consulte Escalado automático predictivo por nivel de clúster.
Importante
Si crea un clúster en Atlas y este es apto para el escalado automático reactivo y predictivo, tanto el escalado automático predictivo como el reactivo se habilitan de forma predeterminada para el nuevo clúster si utiliza la interfaz de usuario de Atlas. Atlas utiliza entonces mecanismos de escalado automático según el tipo, el nivel y la carga de trabajo del clúster. Si utiliza la API de administración de Atlas, debe habilitar explícitamente el escalado automático.
Escalado automático reactivo para el nivel de clúster
Nota
Uso del término escalado automático
En toda la documentación de Atlas, siempre que se utiliza el término "escalado automático" sin la palabra "predictivo", se refiere al mecanismo de escalado automático reactivo. Véase también "escalado automático predictivo".
Puedes configurar los rangos de niveles de clúster que Atlas utiliza para escalar automáticamente el nivel de clúster, la capacidad de almacenamiento o ambos en respuesta al uso del clúster.
Para optimizar el uso de recursos y mejorar el perfil de costos, el escalado automático reactivo de Atlas detecta una demanda sostenida más alta y picos de tráfico de corto plazo, y ajusta el nivel del clúster según el uso de recursos en tiempo real.
Para ayudar a controlar los costos, se puede especificar un rango de tamaños máximos y mínimos para los clústeres a los que el clúster puede escalar automáticamente.
El escalado automático reactivo funciona de manera continua, y el proceso no genera ningún tiempo de inactividad. Atlas mantiene un nodo principal durante este proceso, pero los nodos se actualizan uno por uno y no están disponibles mientras se actualizan.
Para conocer recomendaciones sobre escalabilidad, incluida la forma de evitar la desviación de recursos al usar herramientas de infrastructure as code con escalado automático reactivo, consulta Recomendaciones para la escalabilidad de Atlas en el Atlas Architecture Center.
Clústeres elegibles para el escalado automático reactivo
El escalado automático reactivo de los niveles de clúster de Atlas está disponible para todos los clústeres dedicados en las clases de clúster General y Low-CPU.
Cómo Atlas escala el nivel de clúster
Nota
Disponibilidad de nivel
El escalado automático reactivo funciona en los niveles de clúster de las clases General y Low-CPU, pero no en los clústeres de la clase Local NVMe SSD.
Atlas depende de los datos de ping del host para tomar decisiones de escalabilidad automática. Los nodos de datos del clúster dedicado envían continuamente estos datos de ping al plano de control, sin importar si el autoescalado está habilitado. Cuando habilitas el escalamiento automático, Atlas puede usar estos datos históricos para escalar inmediatamente si se cumplen las condiciones de escalamiento.
Atlas analiza las siguientes métricas del clúster para determinar cuándo escalar un clúster de forma reactiva y si se debe escalar el nivel de clúster hacia arriba o hacia abajo:
Utilización normalizada de la CPU del sistema
Utilización de la memoria del sistema
Atlas calcula la utilización de la memoria del sistema en función de la memoria disponible de los nodos y la memoria total de la siguiente manera:
(memoryTotal - (memoryFree + memoryBuffers + memoryCached)) / (memoryTotal) * 100
En el cálculo anterior, memoryFree, memoryBuffers y memoryCached son cantidades de memoria disponible que Atlas puede recuperar para otros propósitos. Para obtener más información, consulta System Memory en Revisión de métricas disponibles.
Nota
El valor System Memory Utilization que Atlas utiliza para las decisiones de autoescalado puede diferir ligeramente del valor mostrado en el panel de métricas de Atlas.
Atlas no escalará su nivel de clúster si el nuevo nivel de clúster queda fuera del rango especificado de Minimum y Maximum Cluster Size.
Atlas escala el clúster a otro nivel en la misma clase. Por ejemplo, Atlas escala clústeres General a otras clases de clúster General, pero no escala General clústeres a clases de clúster Low-CPU.
Los criterios exactos de escalado automático reactivo están sujetos a cambios para asegurar el uso adecuado de los recursos del clúster.
Importante
Durante una migración, si restauras un snapshot con un tamaño mayor que la capacidad de almacenamiento del clúster de destino, el clúster no se escalará automáticamente.
Si se implementan nodos de solo lectura y se desea que el clúster escale más rápido, se debe considerar ajustar la moda de escalado del set de réplicas.
Escalado reactivo de un nivel de clúster
Para gestionar cargas de trabajo dinámicas para las aplicaciones, Atlas escala reactivamente los nodos del clúster cuando se cumplen las condiciones que se describen en esta sección.
Para ayudarte a interpretar las condiciones, Atlas utiliza los siguientes conceptos de utilización de CPU:
Uso base de la CPU: La fracción de la capacidad total de CPU garantizada para tu instancia por el proveedor de nube, normalmente del 20% al50% para los tipos de instancia de ráfaga. No visible en métricas de Atlas.
Utilización absoluta de la CPU del sistema: Uso total de la CPU sumado en todos los núcleos. Visible como System CPU en las métricas de Atlas. Atlas no utiliza este valor directamente en las decisiones de escalado automático.
Utilización relativa de la CPU del sistema: El valor que Atlas utiliza para tomar decisiones de escalamiento automático en los clústeres
M10yM20. Calculado como el valor de Normalized System CPU dividido por la utilización base de la CPU. Este valor no es directamente visible en las métricas de Atlas y el porcentaje de CPU de referencia no se muestra en el panel de métricas. Para estimarlo, divide tu registro de Normalized System CPU por un valor referencia en el rango de 20%–50% típico de los tipos de instancias burstable. Atlas limita este valor a 100% incluso cuando el cálculo lo supera.
Si el siguiente nivel de clúster está dentro del rango Maximum Cluster Size, Atlas escala los nodos operativos del clúster al siguiente nivel si al menos uno de los siguientes criterios es verdadero para cualquier nodo de clúster de este tipo.
Nota
La lista siguiente agrupa los criterios relacionados con la CPU, seguidos de los criterios relacionados con la memoria. Dentro de cada grupo, los criterios aparecen en orden de más restrictivos a menos restrictivos, y los criterios para proveedores de nube específicos aparecen primero, si existen.
M10yM20clústeres:AWS. La utilización relativa normalizada promedio de la CPU del sistema ha superado el 90% en los últimos 20 minutos y la utilización absoluta no normalizada de la CPU del sistema para el robo de CPU ha superado el 30% en los últimos 3 minutos.
Azure. La utilización relativa normalizada promedio de la CPU del sistema ha superado el 90% en los últimos 20 minutos y la utilización absoluta no normalizada de la CPU del sistema para softIRQ ha superado el 10% en los últimos 3 minutos.
La utilización absoluta de la CPU del sistema promedio normalizada ha superado el 90% de los recursos disponibles del clúster durante los últimos 20 minutos.
La utilización relativa de la CPU del sistema promedio normalizada ha excedido el 75% de los recursos disponibles para el clúster durante la última hora.
El promedio de System Memory Utilization ha superado el 90% de los recursos disponibles para el clúster durante los últimos 10 minutos. Para saber cómo Atlas calcula la utilización de la memoria del sistema, consulte Cómo Atlas escala el nivel del clúster.
El promedio de System Memory Utilization ha superado el 75% de los recursos disponibles para el clúster durante la última hora.
Nota
Para los niveles
M10yM20, Atlas basa los límites de CPU en la utilización de CPU de referencia de la instancia en lugar del valor de referencia estándar del 100%. La línea base no se expone en el panel de métricas de Atlas y puede oscilar entre 20% y50% para los tipos de instancias expansibles. Consulta la documentación de instancias AWS burstable para la columna Baseline CPU utilization per vCPU. Usando 20% como una estimación inferior, los umbrales absolutos efectivos de la CPU son como máximo:El umbral de 75%Utilización relativa de la CPU del sistema es igual a 15% de CPU absoluta (75% de 20%).
El umbral de 90%Utilización relativa de la CPU del sistema es igual a 18% de CPU absoluta (90% de 20%).
Si se produce una subida de escala cuando Normalized System CPU parece bajo, contacta con Soporte técnico de MongoDB.
M30+clústeres:El promedio de Normalized System CPU ha superado el 90% de los recursos disponibles para el clúster durante los últimos 10 minutos.
El promedio de Normalized System CPU ha superado el 75% de los recursos disponibles para el clúster durante la última hora.
El promedio de System Memory Utilization ha superado el 90% de los recursos disponibles para el clúster durante los últimos 10 minutos.
El promedio de System Memory Utilization ha superado el 75% de los recursos disponibles para el clúster durante la última hora.
Estos umbrales aseguran que el clúster se escale rápidamente en respuesta a cargas altas, y que su aplicación pueda gestionar picos de tráfico o uso, manteniendo su rendimiento y confiabilidad.
Nota
Las condiciones en esta sección describen los nodos operativos. Para nodos de análisis en cualquier proveedor de la nube, Atlas los escala al siguiente nivel si el promedio Normalized System CPU o el System Memory Utilization ha superado el 75% de los recursos disponibles para cualquier nodo de clúster durante la última hora.
Ejemplo
Condiciones de escalado del clúster de AWS M10
Considera un escenario de ejemplo con los siguientes valores para ver cómo Atlas evalúa las condiciones de escalado. La utilización base de la CPU no es visible en el panel de métricas de Atlas y puede variar entre 20% a50% para los tipos de instancias bursting. Puedes utilizar cualquier valor dentro de ese rango para estimar los límites superior e inferior, y este ejemplo utiliza 20% como el extremo inferior de ese rango.
Normalized System CPU: 60%
CPU steal: 10%
Evaluando las condiciones:
Condición 1 (AWS): requiere un promedio de Utilización relativa de la CPU del sistema > 90% durante 20 minutos Y un promedio de CPU steal > 30% durante 3 minutos.
CPU relativo: 60% ÷ 20% = 300%, limitado a 100%. Primer umbral alcanzado.
El robo de CPU es 10%, lo cual no supera el 30%. No se cumplió el segundo umbral.
Resultado: No cumplido. Ambos umbrales deben ser verdaderos.
Condición 2: requiere un promedio de Normalized System CPU > 90% durante 20 minutos.
La CPU del sistema normalizado es 60%, lo que no supera el 90%.
Resultado: No cumplido.
Condición 3: Se requiere un promedio de Uso Relativo de la CPU del Sistema > 75% durante 1 hora.
CPU relativa: 60% ÷ 20% = 300%, limitado a 100%.
Resultado: Cumplido. Atlas Triggers el escalado automático.
Para lograr un uso óptima de los recursos y un perfil de costos óptimo, Atlas evita escalar el clúster al siguiente nivel si:
El clúster
M10oM20se ha escalado en los últimos 20 minutos o una hora, dependiendo de los umbrales.El clúster
M30+se ha escalado en los últimos 10 minutos o una hora, dependiendo de los umbrales.
Por ejemplo, si el nivel de clúster no ha cambiado desde 12:00, Atlas escalará un clúster de M30+ en 12:10, si la utilización normalizada actual de la CPU del clúster es superior al 90%.
Importante
Picos repentinos de carga de trabajo
Escalar a un nivel de clúster superior requiere tiempo suficiente para preparar los recursos de respaldo. Es posible que el escalado automático no ocurra cuando un clúster recibe una ráfaga de actividad, como una inserción masiva. Para reducir el riesgo de quedarte sin recursos, planifica escalar los clústeres antes de las inserciones masivas y otros picos de carga de trabajo.
Nota
Atlas no activa la autoescalabilidad del nivel de clúster durante un simulacro de caída regional. Este comportamiento también puede ocurrir durante una interrupción regional real si el clúster no tiene suficientes nodos saludables para soportar las operaciones de escalado.
Escalado a la baja de un nivel de clúster de forma reactiva
Para optimizar costos, Atlas reduce automáticamente el tamaño de los nodos del clúster cuando se cumplen las condiciones que se describen en esta sección.
Si el siguiente nivel de clúster más bajo está dentro del rango Minimum Cluster Size, Atlas escala a la baja los nodos del clúster al siguiente nivel más bajo si todos los siguientes criterios son verdaderos para todos los nodos del tipo de clúster especificado:
Nota
Atlas comienza a verificar estas condiciones desde el momento en que se habilita la reducción de escala, no de manera retroactiva. Incluso si tu clúster cumplía con estas condiciones antes de que habilitaras la reducción de escala, Atlas no reducirá la escala hasta que hayan transcurrido las ventanas de tiempo requeridas desde que habilitaste la funcionalidad.
Todos los nodos:
Atlas no ha reducido el tamaño del clúster (ni manualmente ni automáticamente) en las últimas 24 horas.
Atlas no ha realizado el provisionamiento ni reanudado el clúster en las últimas 24 horas.
Atlas no ha detenido ni reiniciado ningún nodo del clúster en las últimas 12 horas.
- Nodos operativos:
El promedio de Normalized System CPU está por debajo del 45% de los recursos disponibles para el clúster durante al menos los últimos 10 minutos Y las últimas 4 horas. Atlas utiliza el punto de control “media de 4 horas” como indicador de que la carga de la CPU se ha estabilizado en el nivel observado. Atlas utiliza el punto de control de "10 minutos promedio" como indicio de que no se han producido picos recientes de CPU que Atlas no haya capturado con el punto de control de "4 horas promedio".
Nota
Para los niveles
M10yM20, Atlas aplica el umbral de CPU del 45% en relación con la utilización base de CPU de la instancia en lugar del 100% estándar. Usando 20% como una estimación en el rango inferior, el umbral absoluto efectivo de CPU para la reducción de escala es de aproximadamente 9% (45% de 20%).El uso promedio de caché de WiredTiger está por debajo del 90% del tamaño máximo de caché de WiredTiger durante al menos los últimos 10 minutos Y las últimas 4 horas en el tamaño de nivel de clúster actual. Esto indica a Atlas que el clúster actual no está sobrecargado.
La utilización total proyectada de la memoria del sistema en el nuevo nivel de clúster inferior es inferior al 60% durante al menos los últimos 10 minutos Y las últimas 4 horas. Atlas calcula el uso total de memoria proyectado mencionado en la instrucción anterior de la siguiente manera.
Atlas mide el uso actual de la memoria y reemplaza el tamaño de uso actual de la caché de WiredTiger con 80% del tamaño de la caché de WiredTiger en el nuevo clúster de nivel inferior.
A continuación, Atlas comprueba si el uso total de memoria proyectado estaría por debajo del 60% durante al menos las últimas 4 horas y al menos los últimos 10 minutos en el nuevo tamaño de nivel.
Nota
Atlas incluye la caché WiredTiger en su cálculo de memoria para que sea más probable que los clústeres con una caché completa, pero con poco tráfico, reduzcan su escala. Esta verificación aplica dos umbrales:
90%: El uso actual de la caché WiredTiger en el nivel actual debe ser inferior al 90% de su tamaño máximo. Si se supera este límite, Atlas no se ajusta a la baja.
60%: La memoria total proyectada en el nuevo nivel inferior debe estar por debajo de 60%. Para calcular esta proyección, Atlas asume que el uso de caché WiredTiger en el nuevo nivel sería del 80% del tamaño máximo de caché de ese nivel.
Estas condiciones aseguran que Atlas escale a la baja los nodos operativos del clúster para evitar estados de alta utilización.
Nota
Atlas evalúa el escalado basado en memoria usando una métrica proyectada que difiere del System Memory Utilization que se muestra en la Interfaz de Usuario de Atlas. Si no se produce una reducción de escala cuando System Memory Utilization parece bajo, contacte con Asistencia de MongoDB.
- Nodos de análisis:
- El promedio de Normalized System CPU y System Memory Utilization en las últimas 24 horas está por debajo del 50% de los recursos disponibles para el clúster.
Nota
M10y clústeresM20utilizan umbrales más bajos para tener en cuenta los límites de uso de la CPU establecidos por los proveedores de nube después de los períodos de ráfaga. Estos umbrales varían dependiendo del proveedor de nube y el nivel de clúster.
Escalado de un clúster fragmentado
Atlas escala automáticamente el nivel de clúster para clústeres fragmentados utilizando los mismos criterios que los sets de réplicas. Atlas aplica las siguientes reglas:
El escalado independiente de particiones está activado por defecto para clústeres fragmentados con escalado automático. Cuando se habilita el escalado independiente de particiones, el escalado automático en Atlas evalúa y escala cada partición de forma independiente. El escalado independiente de particiones requiere que la partición más pequeña no sea más pequeña que dos niveles de clúster por debajo de la partición más grande, para mantener la disponibilidad y el rendimiento. Si Atlas activa el escalado automático para un clúster de este tipo, y aumenta el tamaño de la partición más grande, también aumenta el tamaño de las particiones más pequeñas si es necesario para garantizar una disponibilidad y un rendimiento coherentes.
Si los nodos operativos o de análisis dentro de un fragmento cumplen con los criterios para el escalado automático, solo los nodos operativos o de análisis en ese fragmento específico cambian de nivel.
El set de réplicas del servidor de configuración no tiene escalado automático.
Escalado automático predictivo para el nivel de clúster
El escalado automático predictivo es una extensión del escalado automático.
Atlas usa la previsión de la demanda para el uso de recursos del host y realiza un escalado preventivo de la capacidad de cómputo del clúster para asegurar una utilización óptima de los recursos. Con el escalado automático predictivo, Atlas intenta escalar el clúster de forma proactiva, antes de los picos cíclicos de carga de trabajo.
El escalado automático predictivo está potenciado por un modelo de aprendizaje automático basado en patrones históricos. Atlas analiza la utilización de recursos en el nodo principal para tomar decisiones de escalado. El modelo predice cuándo la utilización de recursos será alta en función de los patrones históricos de uso, y Atlas escala el clúster hacia arriba si el modelo pronostica una alta utilización de recursos. MongoDB actualiza el modelo y sus criterios continuamente para optimizar el rendimiento de Atlas.
El modelo analiza una ventana de entrada móvil de 4semanas para identificar patrones cíclicos. Se puede captar cualquier patrón observable dentro de esta ventana, por ejemplo, ciclos horarios, diarios, semanales o bisemanales. Los patrones con periodos más largos, como ciclos mensuales o trimestrales, quedan fuera de la ventana de 4semanas y no son detectables.
Nota
Para los patrones cerca del límite superior de la ventana, la precisión puede disminuir porque ocurren menos ciclos completos dentro de la ventana.
El escalado automático predictivo ofrece los siguientes beneficios para los clústeres con cargas de trabajo predictivas y cíclicas:
Amplía automáticamente tu clúster para patrones de carga de trabajo cíclicos dentro de la ventana de entrada de 4semanas.
Mantén un rendimiento y una disponibilidad constantes durante períodos previsibles de alta demanda.
Reduce las tareas manuales de escalado o los scripts programados dejando que Atlas gestione los aumentos de capacidad.
Recurre sin problemas al escalado automático reactivo cuando los cambios en la carga de trabajo del clúster se salgan de los patrones predecibles y sean no cíclicos o impredecibles.
Para activar el escalado automático predictivo, tu clúster debe mantener registros de actividad continuos durante dos semanas. Una vez que cumpla con este criterio, el sistema habilita el escalado automático predictivo.
Nota
Si detienes tu clúster, el escalado automático predictivo requiere dos semanas consecutivas de actividad antes de que pueda reanudarse.
Comportamiento del escalado automático predictivo
Las siguientes instrucciones describen cómo funciona el escalado automático predictivo:
Atlas intenta escalar el tamaño de la instancia del clúster antes de que llegue la carga prevista.
Cuando Atlas escala el clúster de forma predictiva según métricas previstas, se puede escalar hacia arriba como máximo dos niveles a la vez.
El escalado automático predictivo se aplica solo al cómputo, no al almacenamiento.
El escalado automático predictivo respeta los tamaños mínimos y máximos de las instancias de escalado automático existentes.
En los casos en que Atlas no puede usar el escalado automático predictivo para escalar el clúster, recurre al escalado automático reactivo.
El escalado automático predictivo solo admite escalado hacia arriba. No hay reducción de escalado predictivo. Atlas utiliza el escalado automático reactivo para reducir automáticamente el tamaño del clúster cuando la carga de trabajo disminuye.
Si el escalado predictivo está programado para ocurrir dentro de las siguientes 1 hora, Atlas omite el escalado reactivo.
Si utiliza el escalado independiente de fragmentos y añade uno o más después de que el escalado automático predictivo ya estuviera habilitado y activo en el clúster, estos nuevos fragmentos no se escalarán automáticamente de forma predictiva hasta que se hayan establecido sus patrones de carga de trabajo, dos semanas después. Mientras tanto, estos fragmentos utilizan el escalado automático reactivo en Atlas.
Clústeres elegibles para el escalado automático predictivo
Atlas utiliza el escalado automático predictivo para los clústeres elegibles. Los clústeres elegibles para el escalado automático predictivo deben cumplir todos los siguientes criterios:
Pertenecen a las clases de clúster General y Low-CPU.
Tener un nivel que sea
M30o mayor.Tener habilitado el escalado automático. Si habilitas la reducción de escala, el tamaño mínimo de instancia de escalado automático debe ser igual o mayor que
M30.Haber estado activo durante al menos dos semanas.
No usar almacenamiento NVMe ni pertenecer a la clase de clúster Local NVMe SSD.
Además, los siguientes criterios afectan si Atlas utiliza el escalado automático predictivo para un clúster elegible:
El escalado automático predictivo se aplica solo a nodos elegibles y de solo lectura. Atlas no utiliza el escalado automático predictivo para los nodos de búsqueda o de análisis.
Es posible que el escalado automático predictivo no pueda predecir los picos de carga de trabajo no cíclicos y altamente dinámicos en ningún clúster elegible. En estos casos, Atlas confía en el escalado automático reactivo.
Cómo Atlas escala el almacenamiento de clústeres
Atlas habilita el escalado automático del almacenamiento en clúster por defecto. Atlas aumenta automáticamente el almacenamiento del clúster cuando el espacio en disco utilizado alcanza el 90% para cualquier nodo del clúster.
Para optar por no participar en el escalado del almacenamiento en clúster, desmarca la casilla Storage Scaling en la sección Auto-scale.
Se aplican las siguientes consideraciones:
Atlas escala automáticamente el almacenamiento del clúster solo hacia arriba. Se puede reducir manualmente el almacenamiento del clúster desde la página Editar clúster.
En los clústeres de AWS, Azure y GCP, Atlas aumenta la capacidad de almacenamiento del clúster para alcanzar el 70% de uso del espacio en disco. Para obtener más información, consulta Cambiar la capacidad de almacenamiento o IOPS en AWS, Cambiar la capacidad de almacenamiento y IOPS en Azure y Cambiar la capacidad de almacenamiento en Google Cloud.
Evite la actividad de escritura a alta velocidad si planea escalar los clústeres. El escalado de un clúster a una mayor capacidad de almacenamiento requiere tiempo suficiente para preparar y copiar los datos a los nuevos discos. Si un clúster recibe una ráfaga de actividad de escritura a alta velocidad, como una inserción masiva, el escalado automático podría no ocurrir debido a un aumento temporal en la capacidad de almacenamiento en disco. Para reducir el riesgo de quedarse sin almacenamiento en disco, planifica escalar los clústeres antes de las inserciones masivas y otras instancias de actividad de guardado de alta velocidad.
Atlas desactiva el escalado automático de discos si especificas una clase de nivel de clúster para los nodos base y otra clase de nivel de clúster diferente para los nodos de análisis. Por ejemplo, si especificas una clase de clúster General para los nodos operativos en el Base Tier, y una clase de clúster Low-CPU para los nodos de análisis en el Analytics Tier, Atlas desactiva el escalado automático de discos con el siguiente mensaje de error:
Disk auto-scaling is not yet available for clusters with mixed instance classes.Después de que se active el escalado automático de disco, el escalado automático de disco posterior y el escalado manual del disco pueden no estar disponibles durante algunas horas.
El nivel de clúster y el almacenamiento de clúster podrían escalar en paralelo
Cuando Atlas intenta escalar automáticamente la capacidad de almacenamiento del clúster como parte del escalado automático, es posible que se necesite escalar el almacenamiento fuera de los límites que soporta el nivel de clúster actual. Para ayudar a garantizar que el clúster no experimente ningún tiempo de inactividad, Atlas escala el nivel del clúster (además del almacenamiento del clúster) para adaptar la nueva capacidad de almacenamiento.
En Azure, si habilita el escalado automático en un clúster implementado en una de las regiones que admiten almacenamiento/IOPS ampliados, y el actual IOPS es inferior al IOPS predeterminado para el tamaño de disco con escalado automático, Atlas aumenta el número asignado de IOPS en el control deslizante IOPS y se le notifica en la Interfaz de Usuario. Para obtener más información, consulta configurar almacenamiento extendido/IOPS en Azure.
Ejemplo
La capacidad máxima de almacenamiento para un clúster M30 es de 480 GB. Si tienes un clúster M30 con el almacenamiento máximo asignado y el espacio utilizado en disco alcanza el 90%, un evento de escalado automático de almacenamiento requiere aumentar la capacidad de almacenamiento a 600 GB. En este caso, Atlas escala el nivel de su clúster hasta M40 porque este es el nivel de clúster más bajo que puede soportar la nueva capacidad de almacenamiento requerida. En Azure, si se implementó el clúster en una de las regiones que admiten almacenamiento/IOPS extendido, Atlas también aumenta automáticamente las IOPS para igualar el nivel de IOPS de ese clúster de nivel. Para obtener más información, consulte Configurar almacenamiento/ampliación de IOPS en Azure.
En el evento de que el nivel de clúster máximo especificado no pueda soportar la nueva capacidad de almacenamiento, Atlas:
Aumenta el nivel máximo de clúster al siguiente nivel más bajo que pueda acomodar la nueva capacidad de almacenamiento.
Escala el nivel de clúster al nuevo nivel máximo.
Nota
Cuando Atlas anula el nivel máximo de clúster, también desactiva el escalado descendente automático del clúster. Para volver a habilitar el escalado descendente automático, configúrelo en Configuración del clúster. Consulte también Consideracionespara el escalado descendente del nivel del clúster.
Si Atlas intenta reducir el nivel del clúster y el nivel de destino no puede soportar la capacidad de disco actual, las IOPS aprovisionadas, o ambas, Atlas no reduce el nivel del clúster. En este escenario, Atlas actualiza la configuración de escalado automático en función de la relación entre el nivel de clúster actual y el nivel máximo de clúster configurado:
Si el clúster está actualmente en el nivel máximo de clúster configurado, Atlas desactiva el escalado automático hacia abajo del clúster porque los niveles más pequeños no podrían acomodar la configuración de almacenamiento necesaria. Si deseas volver a habilitar el escalado automático descendente, debes hacerlo manualmente desde la Configuración del clúster.
Si el clúster no está actualmente en el nivel máximo de clúster configurado, Atlas eleva el nivel mínimo de clúster al nivel de clúster actual. En este caso, Atlas no desactiva el escalado automático descendente.
Esta lógica de escalado automático reduce el tiempo de inactividad en casos donde sus configuraciones de almacenamiento no coinciden con su carga de trabajo.
Consideraciones de Oplog
Dependiendo de si eliges utilizar el escalado automático del almacenamiento, Atlas gestiona las entradas del oplog en función de la ventana mínima de retención del oplog o del tamaño del oplog. Para obtener más información, consulta Comportamiento del tamaño del Oplog. Atlas permite el escalado automático del almacenamiento por defecto.
Consideraciones para la reducción de escalado del nivel del clúster
Puedes reducir manualmente el nivel de tu clúster desde la página Editar clúster. Las siguientes consideraciones se aplican cuando reduces manualmente el nivel de clúster:
Se debe estimar el rango de cargas de trabajo de la implementación y luego establecer el valor de Minimum Cluster Size al nivel de clúster que tenga suficiente capacidad para gestionar la carga de trabajo de la implementación. Se debe tener en cuenta cualquier posible pico o caída en la actividad del clúster.
No puede escalar a un nivel de clúster más pequeño que
M10.No se puede seleccionar un nivel de clúster mínimo que sea inferior a la configuración de disco actual del clúster. Si el almacenamiento aumenta más allá de lo que soporta el nivel mínimo de clúster, y Atlas incrementa la configuración de almacenamiento del clúster más allá de lo que soporta el nivel mínimo de clúster, entonces Atlas ajusta automáticamente el nivel mínimo de clúster a uno que soporte los requisitos actuales de almacenamiento del clúster.
Ejemplo
Se han establecido los límites de escalado automático a
M20-M60y el nivel actual de clúster esM40con una capacidad de disco de 200GB. Atlas abre un evento de escalado automático de disco para aumentar la capacidad a 320GB porque el uso actual del disco supera los 180GB, lo cual es más del 90% de la capacidad de 200GB.Atlas lleva a cabo las siguientes acciones:
Se debe elevar el nivel mínimo de clúster al siguiente nivel más bajo,
M30, que puede acomodar la nueva capacidad de almacenamiento.M20admite una capacidad máxima de almacenamiento de 256GB, por lo que ya no es un límite válido para el escalado automático.Determina que el tamaño de la instancia actual
M40, soporta la nueva configuración de disco. El evento de escalado automático del disco se completa con éxito.
Configurar las opciones de escalado automático
Puedes configurar las opciones de escalado automático cuando creas o modifica un clúster. Para los nuevos clústeres, Atlas habilita automáticamente el escalado automático de niveles de clúster y el escalado automático de almacenamiento.
Puedes hacer una de las siguientes:
Se deben revisar y ajustar los niveles superiores e inferiores de clúster que Atlas debería usar durante el escalado automático del clúster, o
Desactivar el uso del escalado automático.
Atlas muestra opciones de escalado automático en la sección Auto-scale del constructor de clústeres para clústeres de los niveles General y Low-CPU.
Escalado automático activado por defecto
Al crear un nuevo clúster, Atlas habilita el escalado automático (predictivo y reactivo) para el nivel y el almacenamiento del clúster. (El escalado automático predictivo solo afecta al nivel del clúster, no al almacenamiento). No es necesario habilitarlo explícitamente. Si lo prefiere, puede desactivarlo para el nivel y el almacenamiento del clúster.
Nota
Atlas habilita el escalado automático de los niveles de clúster por defecto al crear clústeres en la interfaz de usuario de Atlas. Si creas clústeres con la API, el escalado automático del clúster no está seleccionado por defecto y debes habilitarlo explícitamente, usando las opciones en el objeto autoScaling del nodo Actualizar un clúster en un proyecto.
Con el escalado automático activado, su clúster puede automáticamente:
Escala para aumentar la capacidad con un nivel de clúster superior, utilizando escalado automático reactivo o predictivo, dependiendo de la elegibilidad del clúster y la carga de trabajo.
Reduce el nivel de clúster actual a un nivel de clúster inferior utilizando el escalado automático reactivo.
En la sección Cluster tier de las opciones de Auto-scale, puede especificar los valores de Maximum Cluster Size y Minimum Cluster Size a los que su clúster puede escalar automáticamente. Atlas establece estos valores de la siguiente manera:
El Maximum Cluster Size está configurado en un nivel por encima del nivel de clúster actual.
El Minimum Cluster Size está establecido en el nivel de clúster actual.
Además, Atlas podría usar escalamiento automático predictivo si su clúster es elegible y su carga de trabajo es cíclica y predecible.
Habilita el escalado automático con Atlas CLI y la API de administración de Atlas
Puedes habilitar el escalado automático tanto para el cómputo como para el almacenamiento al crear o actualizar un clúster mediante Atlas CLI o la API de administración de Atlas. Los siguientes ejemplos muestran cómo habilitar el escalado automático tanto para los nodos elegibles como para los nodos de análisis. Reemplaza los niveles de clúster y la configuración del proveedor con los que necesites.
Para configurar el escalado automático con la Atlas CLI, cree un archivo JSON que contenga la configuración de escalado automático y luego especifíquelo en el comando atlas api clústeres updateCluster.
Usa el comando atlas api clusters updateCluster para llamar directamente a la API y habilitar la configuración de escalado automático en un clúster existente. Para habilitar el escalado automático al crear un nuevo clúster, usa el comando atlas api clusters createCluster.
Crear el archivo de carga.
Cree un archivo payload.json con el siguiente contenido. Reemplace los valores de los marcadores de posición con su configuración específica del clúster:
{ "replicationSpecs": [ { "regionConfigs": [ { "providerName": "{CLOUD-PROVIDER}", "regionName": "{REGION-NAME}", "priority": 7, "electableSpecs": { "instanceSize": "{INSTANCE-SIZE}", "nodeCount": 3 }, "analyticsSpecs": { "instanceSize": "{ANALYTICS-INSTANCE-SIZE}", "nodeCount": 1 }, "autoScaling": { "compute": { "enabled": true, "scaleDownEnabled": true, "minInstanceSize": "{MIN-INSTANCE-SIZE}", "maxInstanceSize": "{MAX-INSTANCE-SIZE}" }, "diskGB": { "enabled": true } }, "analyticsAutoScaling": { "compute": { "enabled": true, "scaleDownEnabled": true, "minInstanceSize": "{MIN-ANALYTICS-INSTANCE-SIZE}", "maxInstanceSize": "{MAX-ANALYTICS-INSTANCE-SIZE}" }, "diskGB": { "enabled": true } } } ] } ] }
Ejecutar el comando de actualización.
Después de crear el archivo payload.json, se debe ejecutar el siguiente comando para habilitar el escalado automático en un clúster existente y especificar el archivo JSON con el indicador --file:
atlas api clusters updateCluster \ --version 2024-10-23 \ --clusterName {CLUSTER-NAME} \ --groupId {GROUP-ID} \ --file payload.json
Se puede usar la API de administración de Atlas para habilitar el escalado automático al especificar la configuración de escalado automático en el cuerpo de la solicitud.
Se debe usar el endpoint Actualizar un clúster en un proyecto para habilitar el escalado automático al incluir el objeto autoScaling.
Nota
Este comando curl utiliza un token de acceso de cuenta de servicio (OAuth 2.0) para autenticar en lugar de claves API. Para obtener más información, consulte Introducción a la API de administración de Atlas.
curl --header "Authorization: Bearer {ACCESS-TOKEN}" \ --header "Accept: application/vnd.atlas.2025-03-12+json" \ --header "Content-Type: application/json" \ --include \ --request PATCH "https://cloud.mongodb.com/api/atlas/v2/groups/{GROUP-ID}/clusters/{CLUSTER-NAME}" \ --data '{ "replicationSpecs": [ { "regionConfigs": [ { "providerName": "{CLOUD-PROVIDER}", "regionName": "{REGION-NAME}", "priority": 7, "electableSpecs": { "instanceSize": "{INSTANCE-SIZE}", "nodeCount": 3 }, "autoScaling": { "compute": { "enabled": true, "scaleDownEnabled": true, "minInstanceSize": "{MIN-INSTANCE-SIZE}", "maxInstanceSize": "{MAX-INSTANCE-SIZE}" }, "diskGB": { "enabled": true } }, "analyticsSpecs": { "instanceSize": "{ANALYTICS-INSTANCE-SIZE}", "nodeCount": 1 }, "analyticsAutoScaling": { "compute": { "enabled": true, "scaleDownEnabled": true, "minInstanceSize": "{MIN-ANALYTICS-INSTANCE-SIZE}", "maxInstanceSize": "{MAX-ANALYTICS-INSTANCE-SIZE}" }, "diskGB": { "enabled": true } } } ] } ] }'
Revisa las opciones de escalado automático de niveles de clúster
Para revisar las opciones de escalado automático habilitadas para los niveles de clúster y almacenamiento:
Excluir el nivel del clúster del escalado automático
Para optar por no participar en el escalado automático del clúster (aumentar el nivel de clúster), cuando crea un nuevo clúster, navega hasta el menú Cluster Tier y desmarque la casilla Cluster Tier Scaling en la sección Auto-scale.
Para optar por no participar en el escalado automático del clúster (disminuyendo el nivel de clúster), cuando crea un nuevo clúster, navega al menú Cluster Tier y desmarque la casilla Allow cluster to be scaled down en la sección Auto-scale.
Revisar la fuente de actividad de escalado automático
Puedes ver la fuente de actividad para revisar los eventos de cada proyecto de Atlas. Cuando ocurre cualquier evento de escalado automático, Atlas registra el evento en el proyecto Activity Feed.
Atlas usa los siguientes eventos de escalado automático para auditar.
Cada evento de autoescalado en la fuente de actividad incluye información detallada sobre lo que desencadenó la acción de escalado, incluidos:
La métrica específica que desencadenó el evento de escalamiento automático (como el uso de CPU, el uso de memoria o el espacio en disco).
El valor umbral que se excedió.
Si el escalado fue activado por escalado automático reactivo (en respuesta al uso actual de recursos) o por escalado automático predictivo (en anticipación a la demanda prevista).
Para ver o descargar únicamente los eventos de escalado automático:
En Atlas, diríjase a la página Project Activity Feed.
Si aún no se muestra, seleccione la organización que contiene su proyecto deseado en el menú Organizations de la barra de navegación.
Si aún no aparece, selecciona el proyecto deseado en el menú Projects de la barra de navegación.
En la barra lateral, haz clic en Activity Feed bajo el encabezado Security.
La página de la fuente de actividad del proyecto se muestra.
Buscar eventos de escalado automático.
En el cuadro de búsqueda encima de la lista, empiece a escribir auto-scaling.
En el lado derecho del menú, se muestran todos los evento de escalado automático. Se debe deseleccionar cualquier opción que no quiera ver. La lista de feeds se actualiza automáticamente con cada cambio que se realiza.
Mejorar el escalado automático con campos eficaces en Terraform
Nota
Esta funcionalidad solo se aplica a los clústeres dedicados en el nivel M10 y superiores, y no está disponible para clústeres Flex.
Cuando el escalado automático está habilitado en un clúster, Atlas ajusta automáticamente los tamaños de las instancias y la capacidad de almacenamiento según la carga de trabajo.
Si utiliza MongoDB y HashiCorp Terraform para la dimensionamiento de instancias de su clúster y las configuraciones de almacenamiento, puede especificar campos efectivos para un subconjunto de valores de dimensionamiento del clúster. Recomendamos este enfoque, de esta manera:
Los atributos de especificación permanecen exactamente como los definiste en tu configuración de Terraform.
Los valores por defecto y con escalado automático están disponibles por separado en las especificaciones efectivas (por ejemplo,
effectiveElectableSpecs), y no se produce ningún desvío de recursos cuando Atlas escala automáticamente tu clúster.Su configuración se mantiene limpia y representa su intención, mientras que las especificaciones efectivas muestran la realidad de lo que Atlas ha aprovisionado.
Los campos efectivos ignoran solo los cambios en los campos gestionados por tipos específicos de autoescalado. La siguiente tabla detalla los campos ignorados cuando están habilitados los campos efectivos y los tipos específicos de escalado automático:
Tipo de escalado automático habilitado | Especificaciones | Campos ignorados | Tipo de nodo |
|---|---|---|---|
Cómputo o Almacenamiento |
|
| |
Cómputo o Almacenamiento |
|
| |
Análisis |
|
|
No puede utilizar campos efectivos para nodos de búsqueda.
Activar campos eficaces
Para habilitar campos efectivos, incluye la siguiente cabecera en la solicitud de la API:
--header "Use-Effective-Instance-Fields: true"
Establece el argumento use_effective_fields en true en tu definición de recurso para el clúster, como muestra el siguiente ejemplo:
resource "mongodbatlas_advanced_cluster" "this" { project_id = mongodbatlas_project.this.id name = var.cluster_name cluster_type = var.cluster_type use_effective_fields = true replication_specs = var.replication_specs tags = var.tags }
Para obtener más información, consulta Ejemplo del módulo de campos efectivos.
Importante
Si no habilitas los campos efectivos, debes configurar manualmente un bloque lifecycle.ignore_changes para evitar la deriva de recursos cuando se produzca el escalado automático. No recomendamos este enfoque . Para obtener más información, consulta Escalado automático. en la documentación de Terraform.
Comportamiento de los campos efectivos
En general, el comportamiento de los campos efectivos se divide en uno de tres escenarios:
Nota
Recomendamos habilitar los campos eficientes como mejores prácticas.
{ "replicationSpecs": [ { "regionConfigs": [ { "analyticsAutoScaling": { "compute": { "maxInstanceSize": "M30", "minInstanceSize": "M10", "enabled": true, "scaleDownEnabled": true }, "diskGB": { "enabled": true } }, "autoScaling": { "compute": { "maxInstanceSize": "M30", "minInstanceSize": "M10", "enabled": true, "scaleDownEnabled": true }, "diskGB": { "enabled": true } }, "effectiveAnalyticsSpecs": { "instanceSize": "M30", "diskIOPS": 3000, "diskSizeGB": 100.0, "ebsVolumeType": "STANDARD", "nodeCount": 0 }, "effectiveElectableSpecs": { "instanceSize": "M30", "diskIOPS": 3000, "diskSizeGB": 100.0, "ebsVolumeType": "STANDARD", "nodeCount": 3 }, "effectiveReadOnlySpecs": { "instanceSize": "M30", "diskIOPS": 3000, "diskSizeGB": 100.0, "ebsVolumeType": "STANDARD", "nodeCount": 0 }, "electableSpecs": { "instanceSize": "M20", "diskSizeGB": 50.0, "nodeCount": 3 }, "priority": 7, "providerName": "AWS", "regionName": "US_EAST_1" } ], "zoneId": "6924a70c67695449ba5625ce", "zoneName": "Zone 1" } ] }
Los campos efectivos están habilitados y el escalado automático está deshabilitado
Los campos de especificación almacenan tu última configuración de nodo, mientras que los campos efectivos muestran los valores que |service| almacena internamente. Haz clic para ver un ejemplo de código de este escenario.
Los campos efectivos están habilitados y el escalado automático está deshabilitado
Los campos de especificación almacenan tu última configuración de nodo, mientras que los campos efectivos muestran los valores que |service| almacena internamente. Haz clic para ver un ejemplo de código de este escenario.
Nota
Recomendamos habilitar los campos eficientes como mejores prácticas.
{ "replicationSpecs": [ { "regionConfigs": [ { "effectiveAnalyticsSpecs": { "instanceSize": "M30", "diskIOPS": 3000, "diskSizeGB": 100.0, "ebsVolumeType": "STANDARD", "nodeCount": 0 }, "effectiveElectableSpecs": { "instanceSize": "M30", "diskIOPS": 3000, "diskSizeGB": 100.0, "ebsVolumeType": "STANDARD", "nodeCount": 3 }, "effectiveReadOnlySpecs": { "instanceSize": "M30", "diskIOPS": 3000, "diskSizeGB": 100.0, "ebsVolumeType": "STANDARD", "nodeCount": 0 }, "electableSpecs": { "instanceSize": "M30", "diskSizeGB": 100.0, "nodeCount": 3 }, "priority": 7, "providerName": "AWS", "regionName": "US_EAST_1" } ], "zoneId": "6924a70c67695449ba5625ce", "zoneName": "Zone 1" } ] }
Importante
Si no habilitas los campos efectivos, debes configurar manualmente un bloque lifecycle.ignore_changes para evitar la deriva de recursos cuando se produzca el escalado automático. No recomendamos este enfoque . Para obtener más información, consulta Escalado automático. en la documentación de Terraform.
{ "replicationSpecs": [ { "regionConfigs": [ { "analyticsAutoScaling": { "compute": { "maxInstanceSize": "M30", "minInstanceSize": "M10", "enabled": true, "scaleDownEnabled": true }, "diskGB": { "enabled": true } }, "autoScaling": { "compute": { "maxInstanceSize": "M30", "minInstanceSize": "M10", "enabled": true, "scaleDownEnabled": true }, "diskGB": { "enabled": true } }, "effectiveAnalyticsSpecs": { "instanceSize": "M30", "diskIOPS": 3000, "diskSizeGB": 100.0, "ebsVolumeType": "STANDARD", "nodeCount": 0 }, "effectiveElectableSpecs": { "instanceSize": "M30", "diskIOPS": 3000, "diskSizeGB": 100.0, "ebsVolumeType": "STANDARD", "nodeCount": 3 }, "effectiveReadOnlySpecs": { "instanceSize": "M30", "diskIOPS": 3000, "diskSizeGB": 100.0, "ebsVolumeType": "STANDARD", "nodeCount": 0 }, "analyticsSpecs": { "instanceSize": "M30", "diskIOPS": 3000, "diskSizeGB": 100.0, "ebsVolumeType": "STANDARD", "nodeCount": 0 }, "electableSpecs": { "instanceSize": "M30", "diskIOPS": 3000, "diskSizeGB": 100.0, "ebsVolumeType": "STANDARD", "nodeCount": 3 }, "readOnlySpecs": { "instanceSize": "M30", "diskIOPS": 3000, "diskSizeGB": 100.0, "ebsVolumeType": "STANDARD", "nodeCount": 0 }, "priority": 7, "providerName": "AWS", "regionName": "US_EAST_1" } ], "zoneId": "6924a70c67695449ba5625ce", "zoneName": "Zone 1" } ] }
Configurar alertas para eventos de escalado automático
Importante
A principios de agosto de 2024, Atlas reemplazó los correos electrónicos de notificación de escalado automático heredados con eventos de escalado automático configurables. Por defecto, Atlas continúa enviando todas las notificaciones de alerta a los propietarios del proyecto. Puedes personalizar la distribución de alertas de escalado automático para cambiar los destinatarios de las alertas o el método de distribución.
Las actividades de escalado automático son un subconjunto de alertas de Atlas.
Cada vez que Atlas activa alguno de los eventos de escalado automático, recibes las alertas predeterminadas de Atlas.
Puedes optar por no participar o cambiar la configuración de alertas para algunos o todos los eventos de escalado automático a nivel de proyecto.
Importante
Las alertas de escalado automático se aplican a todos los clústeres en un proyecto. No puedes restringir el alcance de las alertas a clusters específicos. Las notificaciones de alerta identifican qué clúster activó el evento según el nombre del clúster y el ID.
Para modificar una configuración de alerta, en la sección Category, selecciona Atlas Auto Scaling y luego selecciona Condition/Metric de la lista. A continuación, puedes modificar los roles de los destinatarios de las alertas, cambiar un método de notificación, como correo electrónico o SMS, y agregar un notificador, como Slack. Para obtener más información, consulta Configurar una alerta de escalado automático.
Soporte de MongoDB para el escalado automático de Atlas
Si tienes alguna pregunta o duda, contacta a soporte.