Escalamiento 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.

También puedes ajustar la escala según el uso previsto de CPU. A fin de obtener más información y ver si es adecuado para tu carga de trabajo, consulta la página sobre cómo usar el ajuste de escala automático predictivo.

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

Console

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

    Ir a Grupos de instancias

  2. Si tienes un grupo de instancias, selecciónalo y haz clic en Editar. Si no tienes un grupo de instancias, haz clic en Crear grupo de instancias.

  3. Si no existe una configuración del ajuste de escala automático, en Ajuste de escala automático, haz clic en Configurar ajuste de escala automático.

  4. En Modo de ajuste de escala automático, selecciona Ajustar escala automáticamente para habilitarlo.

  5. En la sección Política de ajuste de escala automático, si aún no hay una métrica de uso de CPU existente, agrega una:

    1. Haz clic en Agregar métrica nueva.
    2. En Tipo de métrica, selecciona Uso de CPU.
    3. Ingresa el Uso objetivo de CPU que desees. Este valor se trata como un porcentaje. Por ejemplo, para un 75% de uso de CPU, ingresa 75.
    4. Haga clic en Listo.
  6. En Ajuste de escala automático predictivo, selecciona Desactivar. A fin de obtener más información sobre el ajuste de escala automático predictivo y si es adecuado para tu carga de trabajo, consulta Usa el ajuste de escala automático predictivo.

  7. En Período de inactividad, especifica el tiempo que tarda la aplicación en inicializarse en una instancia nueva. El escalador automático espera esta cantidad de segundos después de que se inició una instancia antes de que el escalador automático considere que la señal es confiable para el ajuste de escala automático. Esto explica el tiempo que puede tardar tu aplicación en inicializarse. El período de inactividad predeterminado es de 60 segundos.

  8. Especifica la cantidad mínima y máxima de instancias que deseas que el escalador automático cree en este grupo.

  9. Haz clic en Guardar.

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 tomarle a la instancia la inicialización. 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.

De manera opcional, puedes habilitar el ajuste de escala automático predictivo para escalar horizontalmente antes de la carga prevista. A fin de saber si el ajuste de escala automático predictivo es adecuado para tu carga de trabajo, consulta Usa el ajuste de escala automático predictivo.

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 crees 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 tomarle a la instancia la inicialización. 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.

De manera opcional, puedes habilitar el ajuste de escala automático predictivo para escalar horizontalmente antes de la carga prevista. A fin de saber si el ajuste de escala automático predictivo es adecuado para tu carga de trabajo, consulta Usa el ajuste de escala automático predictivo.

{
 "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.

¿Qué sigue?