Escalado basado en la utilización de la CPU


La forma más sencilla de escalado automático es escalar un grupo de instancias administrado (MIG) en función de la utilización de CPU de sus instancias.

También puede escalar automáticamente un MIG según la capacidad de servicio de equilibrio de carga , las métricas de monitoreo o los cronogramas .

Antes de comenzar

  • Revise las limitaciones del escalador automático.
  • Lea acerca de los fundamentos del escalador automático.
  • Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. REST

      Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      Para obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud .

Escalado basado en la utilización de la CPU

Puedes escalar automáticamente según la utilización promedio de CPU de un grupo de instancias administrado (MIG). El uso de esta política le indica al escalador automático que recopile la utilización de CPU de las instancias del grupo y determine si es necesario escalar. Usted establece la utilización de CPU objetivo que el escalador automático debe mantener y el escalador automático trabaja para mantener ese nivel.

El escalador automático trata el nivel de utilización de CPU objetivo como una fracción del uso promedio de todas las vCPU a lo largo del tiempo en el grupo de instancias. Si la utilización promedio del total de vCPU excede la utilización objetivo, el escalador automático agrega más instancias de VM. Si la utilización promedio del total de vCPU es menor que la utilización objetivo, el escalador automático elimina instancias. Por ejemplo, establecer una utilización objetivo de 0,75 le indica al escalador automático que mantenga una utilización promedio del 75 % entre todas las vCPU del grupo de instancias.

También puede escalar según la utilización prevista de la CPU. Para obtener más información y ver si esto es adecuado para su carga de trabajo, consulte Escalado basado en predicciones .

Habilite el escalado automático según la utilización de la CPU

Consola

  1. En la consola, vaya a la página Grupos de instancias .

    Ir a grupos de instancias

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

  3. Si no existe ninguna configuración de escalado automático, en Escalado automático , haga clic en Configurar escalado automático .

  4. En Modo de escalado automático , seleccione Activado: agregar y eliminar instancias al grupo para habilitar el escalado automático.

  5. Especifique el número mínimo y máximo de instancias que desea que el escalador automático cree en este grupo.

  6. En la sección Señales de escalado automático , si aún no existe una métrica de utilización de CPU existente, agregue una:

    1. Haga clic en Agregar una señal .
    2. En el menú desplegable Tipo de señal , seleccione Utilización de CPU .
    3. Ingrese la utilización de CPU de destino que desee. Este valor se trata como un porcentaje. Por ejemplo, para una utilización de CPU del 75 %, ingrese 75 .
    4. En Escala automática predictiva , seleccione Desactivado . Para obtener más información sobre el escalado automático predictivo y si es adecuado para su carga de trabajo, consulte Escalado basado en predicciones .
    5. Haga clic en Listo .
  7. Puede utilizar el período de inicialización para indicarle al escalador automático cuánto tiempo tarda su aplicación en inicializarse. Especificar un período de inicialización preciso mejora las decisiones del escalador automático. Por ejemplo, al escalar horizontalmente, el escalador automático ignora los datos de las máquinas virtuales que aún se están inicializando porque es posible que esas máquinas virtuales aún no representen el uso normal de su aplicación. El período de inicialización predeterminado es de 60 segundos.

  8. Haga clic en Guardar .

nube de gcloud

Utilice el subcomando set-autoscaling para habilitar el escalado automático para un grupo de instancias administrado. Por ejemplo, el siguiente comando crea un escalador automático que tiene una utilización de CPU objetivo del 60 %. Junto con el parámetro --target-cpu-utilization , el parámetro --max-num-replicas también es necesario al crear 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

Puede utilizar el indicador --cool-down-period para establecer el período de inicialización, que le indica al escalador automático cuánto tiempo tarda su aplicación en inicializarse. Especificar un período de inicialización preciso mejora las decisiones del escalador automático. Por ejemplo, al escalar horizontalmente, el escalador automático ignora los datos de las máquinas virtuales que aún se están inicializando porque es posible que esas máquinas virtuales aún no representen el uso normal de su aplicación. El período de inicialización predeterminado es de 60 segundos.

Opcionalmente, puede habilitar el escalado automático predictivo para escalar horizontalmente antes de la carga prevista. Para saber si el escalado automático predictivo es adecuado para su carga de trabajo, consulte Escalado basado en predicciones .

Puedes verificar que el escalado automático esté habilitado correctamente utilizando el subcomando instance-groups managed describe , que describe el grupo de instancias administrado correspondiente y proporciona información sobre las características de escalado automático para ese grupo de instancias:

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

Para obtener una lista de los comandos e indicadores gcloud disponibles, consulta la referencia de gcloud .

DESCANSAR

Para crear un escalador automático, utilice el método autoscalers.insert para un MIG zonal o el método regionAutoscalers.insert para un MIG regional.

El siguiente ejemplo crea un escalador automático para un MIG zonal:

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

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

Puede utilizar el campo coolDownPeriodSec para establecer el período de inicialización, que le indica al escalador automático cuánto tiempo tarda su aplicación en inicializarse. Especificar un período de inicialización preciso mejora las decisiones del escalador automático. Por ejemplo, al escalar horizontalmente, el escalador automático ignora los datos de las máquinas virtuales que aún se están inicializando porque es posible que esas máquinas virtuales aún no representen el uso normal de su aplicación. El período de inicialización predeterminado es de 60 segundos.

Opcionalmente, puede habilitar el escalado automático predictivo para escalar horizontalmente antes de la carga prevista. Para saber si el escalado automático predictivo es adecuado para su carga de trabajo, consulte Escalado basado en predicciones .

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

Para obtener más información sobre cómo habilitar el escalado automático según la utilización de la CPU, complete el tutorial Uso del escalado automático para aplicaciones altamente escalables .

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

Durante los períodos de uso intensivo de la CPU, si el uso es cercano al 100 %, el escalador automático estima que es posible que el grupo ya esté muy sobrecargado. En estos casos, el autoscaler aumenta el número de máquinas virtuales en un 50% como máximo.

¿Qué sigue?