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 tus MIG.

Cuando configuras un autoescalador para un MIG, el autoescalador supervisa de manera constante el grupo y establece el recommendedSize del grupo en la cantidad de instancias que se requieren para servir 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 escalador automático mode:

  • ON. El MIG establece su targetSize en el tamaño recomendado y el grupo se escala de forma automática para alcanzar su tamaño objetivo.
  • ONLY_UP. El tamaño objetivo del MIG solo se puede incrementar en respuesta a un tamaño recomendado incrementado.
  • OFF. El tamaño objetivo 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.

Brechas entre el uso objetivo 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 uso objetivo pueden ser muy distintos. Esto se debe a que un escalador automático siempre actúa de manera conservadora a la hora de redondear hacia arriba o hacia abajo cuando interpreta los datos de uso y determina cuántas instancias 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 tu aplicación excede este objetivo, el escalador automático puede determinar que agregar 1.5 instancias de máquina virtual (VM) disminuirá el uso a 0.7. Debido 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 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 uso objetivo.

Demoras en la reducción de escalamiento

Para la reducción de escalamiento, el escalador automático calcula el tamaño objetivo 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 aparecer como 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, la instancia se ejecuta durante al menos 10 minutos antes de que se pueda finalizar.

Los períodos de inactividad de las instancias nuevas se ignoran cuando decides reducir el tamaño de un grupo.

El desvío de conexión causa demoras

Si el grupo forma parte de un servicio de backend que tenga habilitado el desvío de conexión, pueden transcurrir hasta 60 segundos después del desvío de conexión hasta que se quite o borre la instancia de VM.

Retrasos del escalamiento vertical

El escalador automático ignora los datos de uso de las instancias mientras se están inicializando, es decir, durante el período de inactividad. Si estableces un valor de período de inactividad significativamente mayor que el tiempo que tarda una instancia en inicializarse, es posible que el escalador automático ignore datos de uso legítimos y podría subestimar el tamaño requerido de tu grupo.

Por ejemplo, supongamos que escalas 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 escalamiento vertical, establece un período de inactividad que coincida con la cantidad de tiempo que tus instancias tardan en inicializarse.

Prepara la finalización de la instancia

Cuando el escalador automático reduce la escala, determina la cantidad de instancias de VM que necesita cerrar y selecciona las instancias de VM que tienen un nivel de uso bajo para finalizar del grupo de instancias. Antes de que finalice una instancia, asegúrate de que estas instancias realicen algunas tareas, como cerrar cualquier conexión existente, cerrar cualquier aplicación o servidor de aplicaciones con éxito, subir registros y muchas tareas más. Puedes indicarle a la instancia que realice estas tareas mediante una secuencia de comandos de apagado.

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

Esta función es útil si usas el balanceo de cargas con el grupo de instancias administrado. Si la instancia es incorrecta, el balanceador de cargas puede tardar un tiempo en reconocer que la instancia está en mal estado, lo que hará que el balanceador de cargas continúe enviando solicitudes nuevas a la instancia. Con una secuencia de comandos de apagado, la instancia puede informar que está en mal estado y, a su vez, que se está cerrando para que el balanceador de cargas pueda dejar de enviar tráfico a la instancia. Para obtener más información, consulta cómo controlar instancias incorrectas en la documentación de balanceo de cargas.

Para obtener más información sobre las secuencias de comandos de apagado, consulta la sección 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 para su 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 de un grupo de instancias administrado con ajuste de escala automático que deseas ver. El grupo debe utilizar 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.

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

Los gráficos realizan un seguimiento de la cantidad de instancias en función del uso de CPU. Usa la siguiente información para comprender estos gráficos.

  • En la línea azul del gráfico superior, se indica la cantidad de instancias en el grupo de instancias administrado.
  • En la línea azul del gráfico inferior, se muestra el uso de CPU total del grupo.
  • En 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 el tamaño del grupo de instancias disminuya, por lo que también lo hará la línea azul del gráfico superior. De manera similar, si la capacidad aumenta, es probable que el tamaño del grupo de instancias también aumente.

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

Captura de pantalla del gráfico del 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 directo desde la página de grupos de instancias en Google Cloud Console.

  1. En Google Cloud Platform Console, ve a la página de 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 directo 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 de 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 lo que significan.

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.
Estás realizando 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. Según si la métrica es estándar o personalizada, se requieren diferentes etiquetas. Consulta la documentación sobre el escalamiento basado en una métrica de Stackdriver 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 de cuotas en 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 pautas en la documentación de 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 cuyo caso no hay nada de qué preocuparse. Sin embargo, este mensaje también se debe 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, lo cual no se admite. Para obtener una lista completa de pautas, consulta Restricciones y pautas en la documentación del balanceo de cargas.