Ajusta la escala según el uso de CPU

La forma más simple de realizar el ajuste de escala automático consiste en escalar un grupo de instancias administrado (MIG) en función del uso de CPU de sus instancias.

También puedes escalar un MIG en función de la capacidad de entrega de un balanceador de cargas HTTP(S) externo o de las métricas de Monitoring.

Antes de comenzar

Escalamiento según el uso de CPU

Puedes ajustar la escala de forma automática en función del uso de CPU promedio de un grupo de instancias administrado (MIG). El uso de esta política le indica al escalador automático que recopile el uso de CPU de las instancias en el grupo y determine si necesita escalar. Estableces el uso objetivo de CPU que debe mantener el escalador automático y este funciona para mantenerlo.

El escalador automático considera el nivel de uso objetivo de CPU como una fracción del uso promedio de todas las CPU virtuales a lo largo del tiempo en el grupo de instancias. Si el uso promedio del total de las CPU virtuales supera el uso objetivo, el escalador automático agregará más instancias de VM. Si el uso promedio del total de las CPU virtuales es menor que el objetivo de uso, el escalador automático quitará instancias. Por ejemplo, si se establece el objetivo de uso en 0.75, se le indica al escalador automático que mantenga un uso promedio del 75% entre todas las CPU virtuales del grupo de instancias.

Habilita el ajuste de escala automático según el uso de CPU

Console


  1. Ir a la página Grupos de instancias.
  2. Si tienes un grupo de instancias, selecciónalo y haz clic en Editar grupo. Si no tienes un grupo de instancias, haz clic en Crear grupo de instancias.
  3. En Ajuste de escala automático, selecciona Activado.
  4. En Ajuste de escala automático según, selecciona Uso de CPU.
  5. Ingresa el Uso objetivo de CPU que desees. Este valor se trata como un porcentaje. Por ejemplo, para un 60% de uso de CPU, ingresa 60.
  6. Proporciona un número para la cantidad máxima de instancias que quieres en este grupo de instancias. También puedes establecer la cantidad mínima de instancias y el período de inactividad. El período de inactividad es la cantidad de segundos que el escalador automático debe esperar luego de que se inició una VM antes de comenzar a recopilar información. Esto explica la cantidad de tiempo que puede tardar una VM en inicializarse, durante el cual los datos recopilados no son confiables para el ajuste de escala automático. El período de inactividad predeterminado es de 60 segundos.
  7. Guarda los cambios.

gcloud


Usa el subcomando set-autoscaling a fin de habilitar el ajuste de escala automático para un grupo de instancias administrado. Por ejemplo, mediante el siguiente comando, se crea un escalador automático que tiene un uso objetivo de CPU del 60%. Además del parámetro --target-cpu-utilization, también se requiere el parámetro --max-num-replicas cuando se crea un escalador automático:

gcloud compute instance-groups managed set-autoscaling example-managed-instance-group \
    --max-num-replicas 20 \
    --target-cpu-utilization 0.60 \
    --cool-down-period 90

De manera opcional, puedes usar la marca --cool-down-period, que le indica al escalador automático cuántos segundos esperar después de que se inició una instancia nueva antes de considerar sus datos. Este período de inactividad representa la cantidad de tiempo que puede demorar la instancia en inicializarse, durante el cual los datos de uso recopilados no son confiables para el ajuste de escala automático. Después de que finaliza el período de inactividad, el escalador automático comienza a incluir los datos de uso de la instancia para determinar si se debe escalar el grupo. El período de inactividad predeterminado es de 60 segundos.

Puedes verificar que el ajuste de escala automático se habilitó de manera correcta mediante el subcomando instance-groups managed describe, que describe el grupo de instancias administrado correspondiente y proporciona información sobre las funciones de ajuste de escala automático para ese grupo de instancias:

gcloud compute instance-groups managed describe example-managed-instance-group

Para obtener una lista de los comandos y las marcas gcloud disponibles, consulta la referencia de gcloud.

API


Nota: Si bien el ajuste de escala automático es una característica de los grupos de instancias administrados, es un recurso de la API diferente. Ten esto en cuenta cuando construyas solicitudes a la API para el ajuste de escala automático.

En la API, realiza una solicitud POST al método autoscalers.insert:

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/autoscalers/

El cuerpo de tu solicitud debe contener los campos name, target y autoscalingPolicy. autoscalingPolicy debe definir cpuUtilization y maxNumReplicas.

De manera opcional, puedes usar el campo coolDownPeriodSec, que le indica al escalador automático cuántos segundos esperar después de que se inició una instancia nueva antes de considerar sus datos. Este período de inactividad representa la cantidad de tiempo que puede demorar la instancia en inicializarse, durante el cual los datos de uso recopilados no son confiables para el ajuste de escala automático. Después de que finaliza el período de inactividad, el escalador automático comienza a incluir los datos de uso de la instancia para determinar si se debe escalar el grupo. El período de inactividad predeterminado es de 60 segundos.

{
 "name": "example-autoscaler",
 "target": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instanceGroupManagers/example-managed-instance-group",
 "autoscalingPolicy": {
    "maxNumReplicas": 10,
    "cpuUtilization": {
       "utilizationTarget": 0.6
     },
    "coolDownPeriodSec": 90
  }
}

A fin de obtener más información sobre cómo habilitar el ajuste de escala automático según el uso de CPU, completa el instructivo sobre cómo usar el ajuste de escala automático para aplicaciones altamente escalables .

Cómo el escalador automático maneja el uso intensivo de CPU

Durante los períodos de uso intensivo de CPU, si el uso está cerca del 100%, el escalador automático estima que el grupo puede estar muy sobrecargado. En estos casos, el escalador automático aumenta la cantidad de máquinas virtuales en un 50% como máximo.