Obtén información sobre las decisiones de los escaladores automáticos

El ajuste de escala automático realiza un escalamiento automático de un grupo de instancias administrado (MIG) en tu nombre. Usa este documento para comprender algunas de las decisiones que toma el escalador automático cuando escala los MIG.

Cuando configuras un escalador automático para un MIG, el escalador automático supervisa de manera constante el grupo y establece su recommendedSize en la cantidad de instancias que se requieren para entregar la carga máxima en los últimos 10 minutos. Estos últimos 10 minutos se denominan período de estabilización.

La respuesta del MIG al tamaño recomendado del escalador automático depende de cómo configures el mode del escalador automático:

  • ON. El MIG establece su targetSize en el tamaño recomendado y el grupo se escala de forma automática para alcanzar objetivo de tamaño.
  • ONLY_UP. El objetivo de tamaño del MIG solo se puede incrementar si se aumenta el tamaño recomendado.
  • OFF. El objetivo de tamaño no se ve afectado por el tamaño recomendado. Sin embargo, el tamaño recomendado todavía se calcula.

Si se borra la configuración del escalador automático, no se calcula el tamaño recomendado.

Diferencias entre el objetivo de uso y el uso real

Durante el proceso de ajuste de escala automático, puedes observar que, en los grupos de instancias más pequeños, el uso real y el objetivo de uso pueden ser muy distintos. Esto se debe a que un escalador automático siempre actúa con cautela a la hora de redondear hacia arriba o hacia abajo cuando interpreta los datos de uso y determina cuántas instancias se deben agregar o quitar. Esto evita que el escalador automático agregue una cantidad de recursos insuficiente o quite demasiados recursos.

Por ejemplo, si estableces un objetivo de uso de 0.7 y la aplicación excede ese objetivo, el escalador automático puede determinar que agregar 1.5 instancias de máquina virtual (VM) disminuirá el uso a 0.7. Debido a que no es posible agregar 1.5 instancias de VM, el escalador automático redondea hacia arriba y agrega dos instancias. Esto puede disminuir el uso de CPU promedio a un valor inferior a 0.7, pero garantiza que la aplicación tenga recursos suficientes para admitirlo.

De manera similar, si el escalador automático determina que quitar 1.5 instancias de VM aumentará el uso a casi 0.7, quitará solo una instancia.

En el caso de grupos más grandes con más instancias de VM, el uso se divide en un mayor número de instancias, y agregar o quitar instancias de VM genera menos diferencias entre el uso real y el objetivo de uso.

Demoras en la reducción de escalamiento

Para la reducción de escalamiento, el escalador automático calcula el objetivo de tamaño recomendado del grupo en función de la carga máxima durante los últimos 10 minutos. Estos últimos 10 minutos se denominan período de estabilización.

Observar los últimos 10 minutos de uso ayuda al escalador automático a realizar las siguientes acciones:

  • Asegurarse de que la información de uso recopilada del grupo de instancias sea segura
  • Evitar el comportamiento en el que un escalador automático agrega o quita instancias de forma continua a una velocidad excesiva
  • Quitar instancias de forma segura y determinar si el tamaño del grupo más pequeño es suficiente para admitir la carga máxima de los últimos 10 minutos

Este período de estabilización de 10 minutos puede parecer una demora en la reducción del escalamiento, pero en realidad es una función integrada del ajuste de escala automático. La demora también garantiza que, si se agrega una instancia nueva al grupo de instancias administrado, esta se ejecutará durante al menos 10 minutos antes de que se pueda apagar.

Los períodos de inactividad de las instancias nuevas se ignoran cuando se decide si se disminuirá el escalamiento de un grupo.

El vaciado de conexiones causa demoras

Si el grupo forma parte de un servicio de backend en el que el vaciado de conexiones está habilitado, pueden transcurrir hasta 60 segundos después de que se complete el vaciado de conexiones hasta que se quite o borre la instancia de VM.

Demoras en el escalamiento vertical

El escalador automático ignora los datos de uso de las instancias mientras se inicializan, es decir, durante el período de inactividad. Si estableces un valor de período de inactividad mucho mayor que el tiempo que tarda una instancia en inicializarse, es posible que el escalador automático ignore datos de uso legítimos y, como consecuencia, subestime el tamaño requerido del grupo.

Por ejemplo, supongamos que realizas un escalamiento en función del uso de CPU y que el uso de CPU de una instancia aumenta después de que se inicializa. El aumento del uso de CPU podría justificar un escalamiento vertical. Sin embargo, si la instancia aún se encuentra en su período de inactividad, se ignora el aumento del uso de CPU y el grupo no se escala verticalmente debido a esto.

Para evitar demoras en el escalamiento vertical, establece un período de inactividad que coincida con la cantidad de tiempo que toma la inicialización de las instancias.

Prepara el apagado de instancias

Cuando el escalador automático reduce el escalamiento, determina la cantidad de instancias de VM que necesita apagar y, luego, selecciona aquellas que tienen un nivel de uso bajo dentro del grupo de instancias. Antes de que se apaguen las instancias, asegúrate de que realicen algunas tareas, como interrumpir cualquier conexión existente, cerrar aplicaciones o servidores de aplicaciones con éxito, y subir registros, entre otras tareas. Puedes indicarle a una instancia que realice estas tareas mediante una secuencia de comandos de apagado.

Una secuencia de comandos de apagado se ejecuta, en función del criterio del mejor esfuerzo, en un período breve entre el momento en el que se realiza la solicitud de apagado y el momento en el que se apaga la instancia. Durante este período, Compute Engine intenta ejecutar la secuencia de comandos de apagado para realizar cualquier tarea que indiques en la secuencia de comandos.

Esta función es útil si usas el balanceo de cargas en el grupo de instancias administrado. Si la instancia se encuentra en mal estado, es posible que al balanceador de cargas le lleve cierto tiempo reconocer esta situación y, en consecuencia, continuará enviando solicitudes nuevas a la instancia. Con una secuencia de comandos de apagado, la instancia puede informar que está en mal estado mientras se está apagando, y, de este modo, el balanceador de cargas podrá dejar de enviar tráfico a la instancia. Para obtener más información, consulta Controla instancias en mal estado en la documentación del balanceo de cargas.

Para obtener más información sobre las secuencias de comandos de apagado, consulta Secuencias de comandos de apagado.

Para obtener más información sobre el cierre de instancias, lee la documentación sobre cómo detener o borrar una instancia.

Visualiza los gráficos de ajuste de escala automático sobre el uso

Si tienes un grupo de instancias administrado con ajuste de escala automático, Compute Engine proporciona un gráfico de ajuste de escala automático que realiza un seguimiento del uso total y de la cantidad de instancias con ajuste de escala automático en cualquier momento. Puedes acceder a este gráfico desde Google Cloud Console.

  1. En Cloud Console, ve a la página de grupos de instancias.

    Ir a la página Grupos de instancias

  2. Haz clic en el nombre del grupo de instancias administrado con ajuste de escala automático que deseas ver. El grupo debe usar el ajuste de escala automático en función del uso de CPU (otras métricas de ajuste de escala automático aún no son compatibles).
  3. En la página de detalles del grupo de instancias administrado, selecciona la pestaña Supervisión (Monitoring) si aún no está seleccionada.

    Pestaña Supervisión (Monitoring)

  4. Asegúrate de que la opción Tamaño con ajuste de escala automático esté seleccionada en la lista desplegable.

En los gráficos, se muestra un seguimiento de la cantidad de instancias en función del uso de CPU. Usa la siguiente información para comprender estos gráficos.

  • Con la línea azul del gráfico superior, se indica la cantidad de instancias en el grupo de instancias administrado.
  • Con la línea azul del gráfico inferior, se muestra el uso de CPU total del grupo.
  • Con la línea verde del gráfico inferior, se muestra la capacidad disponible restante del grupo de instancias administrado.
    • Si la línea verde está por encima de la línea azul, significa que hay una gran cantidad de capacidad disponible y es probable que las instancias de VM tengan poco uso.
    • Si la línea verde está por debajo de la línea azul, significa que queda poca capacidad, si la hay, y debes agregar más instancias al grupo de instancias.
  • Si la capacidad disminuye, es probable que también se haya reducido el tamaño del grupo de instancias, por lo que la línea azul del gráfico superior descenderá. De manera similar, si la capacidad aumenta, es probable que el tamaño del grupo de instancias también haya aumentado.

Por ejemplo, en el siguiente gráfico, se representa un grupo de instancias administrado con ajuste de escala automático que alcanza su capacidad máxima, lo que hace que el escalador automático agregue más instancias de VM al grupo y, así, aumente la capacidad de este.

Captura de pantalla del gráfico de ajuste de escala automático

Visualiza los mensajes de estado

Cuando el escalador automático tiene un problema de escalamiento, muestra un mensaje de advertencia o error. Puedes revisar estos mensajes de estado de dos formas.

Visualiza los mensajes de estado en la página Grupos de instancias

Puedes ver los mensajes de estado directamente desde la página de Grupos de instancias (Instance groups) en Google Cloud Console.

  1. En Google Cloud Console, ve a la página Grupos de instancias.

    Ir a la página Grupos de instancias

  2. Busca cualquier grupo de instancias que tenga el ícono de Precaución (!). Por ejemplo:

    Mensajes de estado en la página Grupos de instancias

  3. Coloca el cursor sobre un ícono de estado para obtener detalles del mensaje de estado.

Visualiza los mensajes de estado en la página de detalles del grupo de instancias

Puedes ir directamente a la página de detalles de un grupo de instancias específico para ver los mensajes de estado relevantes.

  1. En Cloud Console, ve a la página Grupos de instancias.

    Ir a la página Grupos de instancias

  2. Haz clic en el grupo de instancias para el que deseas ver los mensajes de estado.
  3. En la página de detalles, visualiza el mensaje de estado en la pestaña Miembros (Members). Por ejemplo:

    Mensajes de estado en la página de detalles del grupo de instancias

Mensajes de estado que se muestran con frecuencia

Cuando el escalador automático tiene un problema de escalamiento, muestra un mensaje de advertencia o error. A continuación, se presentan algunos mensajes que se muestran con frecuencia y se explican sus significados.

All instances in the instance group are unhealthy (not in RUNNING state). If this is an error, check the instances.
Todas las instancias en el grupo de instancias tienen un estado que no es RUNNING. Si esto es intencional, puedes ignorar este mensaje. Si esto no es intencional, soluciona el problema del grupo de instancias.
The number of instances has reached the maxNumReplicas. The autoscaler cannot add more instances.
Cuando creaste el escalador automático, indicaste la cantidad máxima de instancias que puede tener el grupo de instancias. El escalador automático intenta cambiar el tamaño del grupo de instancias para satisfacer la demanda, pero alcanzó la maxNumReplicas. Para obtener información sobre cómo actualizar maxNumReplicas a un número mayor, consulta Actualiza un escalador automático.
The monitoring metric that was specified does not exist or does not have the required labels. Check the metric.
Realizas el ajuste de escala automático con una métrica de Stackdriver Monitoring, pero la métrica que proporcionaste no existe o carece de las etiquetas necesarias. Las etiquetas que se requieren dependen de si las métricas son estándar o personalizadas. Consulta la documentación sobre el escalamiento basado en una métrica de Monitoring para obtener más información.
Quota for some resources is exceeded. Increase the quota or delete resources to free up more quota.
Puedes obtener información sobre tu cuota disponible en la página Cuotas de Google Cloud Console.
Autoscaling does not work with an HTTP/S load balancer configured for maxRate.
Se balancean las cargas del grupo de instancias con la configuración maxRate, pero el escalador automático no admite este modo. Cambia la configuración o inhabilita el ajuste de escala automático. Para obtener más información sobre maxRate, lee las Restricciones y lineamientos en la documentación del balanceo de cargas.
The autoscaler is configured to scale based on a load balancing signal but the instance group has not received any queries from the load balancer. Check that the load balancing configuration is working.
Se balancean las cargas del grupo de instancias, pero el grupo no recibe consultas. Es posible que el servicio experimente un período de inactividad. En ese caso, no hay nada de qué preocuparse. Sin embargo, este mensaje puede aparecer debido a una configuración incorrecta. Por ejemplo, un grupo de instancias con ajuste de escala automático puede ser el objetivo de más de un balanceador de cargas, y esto no se admite. Para obtener una lista completa de lineamientos, consulta Restricciones y lineamientos en la documentación del balanceo de cargas.