Escalonamento com base no uso da CPU

A forma mais simples de escalonamento automático é escalonar um grupo de instâncias gerenciadas (MIG, na sigla em inglês) com base na utilização da CPU das instâncias.

Também é possível escalonar um MIG com base na capacidade de serviço de um balanceador de carga HTTP(S) externo ou nas métricas do Monitoring.

Antes de começar

Escalonamento com base no uso da CPU

É possível fazer escalonamento automático com base na utilização média da CPU de um grupo de instâncias gerenciadas (MIG, na sigla em inglês). Com essa política, o uso da CPU das instâncias do grupo é coletado no autoescalador e fica possível determinar se o escalonamento é necessário. Você define a meta de uso da CPU que será mantida pelo autoescalador, e ele trabalha para manter esse nível.

O escalonador automático avalia a meta do nível de utilização da CPU como uma fração do uso médio de todas as vCPUs ao longo do tempo no grupo de instâncias. Se o uso médio de todas as vCPUs exceder a utilização desejada, o escalonador automático adicionará instâncias de VM. Por outro lado, se esse uso médio for menor do que a utilização desejada, o autoescalador removerá instâncias. Por exemplo, uma meta de utilização configurada como 0,75 instrui o escalonador automático a manter um uso médio de 75% entre todas as vCPUs no grupo de instâncias.

Também é possível escalonar com base na previsão de uso da CPU. Para mais informações e para ver se isso é adequado para sua carga de trabalho, consulte Como usar o escalonamento automático de previsão.

Ativar o escalonamento automático com base no uso da CPU

Console

  1. No console, acesse a página Grupos de instâncias.

    Acesse grupo de instâncias

  2. Se existir um grupo de instâncias, selecione-o e clique em Editar grupo. Se você não tem um grupo de instâncias, clique em Criar grupo de instâncias.

  3. Se não existir uma configuração de escalonamento automático, em Escalonamento automático, clique em Configurar escalonamento automático.

  4. Em Modo de escalonamento automático, selecione Escalonar automaticamente para ativá-lo.

  5. Na seção Política de escalonamento automático, se uma métrica de utilização de CPU atual ainda não existir, adicione uma:

    1. Clique em Adicionar nova métrica.
    2. Em Tipo de métrica, selecione Utilização de CPU.
    3. Informe a utilização de CPU de destino que você quer. Esse valor é tratado como uma porcentagem. Por exemplo, para ter 75% de utilização da CPU, insira 75.
    4. Clique em Concluído.
  6. Em Escalonamento automático preditivo, selecione Desativado. Para saber mais sobre o escalonamento automático preditivo e se ele é adequado para sua carga de trabalho, consulte Como usar o escalonamento automático preditivo.

  7. Em Período de resfriamento, especifique quanto tempo leva para o aplicativo ser inicializado em uma nova instância. O autoescalador aguarda esse número de segundos após o início de uma instância antes que o autoescalador comece a coletar informações dela. Isso determina o tempo que o aplicativo pode levar para inicializar, em que os dados coletados não são confiáveis para fins de escalonamento automático. O período de espera padrão é de 60 segundos.

  8. Especifique os números mínimo e máximo de instâncias que você quer que o autoescalador crie nesse grupo.

  9. Clique em Save.

gcloud


Use o subcomando set-autoscaling para ativar o escalonamento automático de um grupo de instâncias gerenciadas. Por exemplo, o comando a seguir cria um autoescalador com meta de uso da CPU de 60%. Com o parâmetro --target-cpu-utilization, também é necessário o parâmetro --max-num-replicas para criar um autoescalador:

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

Opcionalmente, é possível usar a sinalização --cool-down-period, que informa ao autoescalador quantos segundos esperar após uma nova instância ser iniciada antes de considerar os dados da nova instância. Esse período de espera conta o tempo que a instância pode levar para ser inicializada, em que os dados de utilização coletados não são confiáveis para escalonamento automático. Depois que o período de espera for aprovado, o autoescalador começa a incluir os dados de utilização da instância para determinar se o grupo precisa ser dimensionado. O período de espera padrão é de 60 segundos.

Outra opção é ativar o escalonamento automático preditivo para escalonar antes da carga prevista. Para saber se o escalonamento automático preditivo é adequado para sua carga de trabalho, consulte Como usar o escalonamento automático preditivo.

Para verificar se o escalonamento automático está ativado, use o subcomando instance-groups managed describe, que descreve o grupo de instâncias gerenciadas correspondente e fornece informações sobre os recursos de escalonamento automático desse grupo de instâncias:

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

Para uma lista de sinalizações e comandos gcloud disponíveis, consulte a referência de gcloud.

API


Observação: o escalonamento automático é um recurso de grupos de instâncias gerenciadas, mas ele é um recurso de API separado. Lembre-se disso quando criar solicitações de API para o escalonamento automático.

Na API, faça uma solicitação POST ao método autoscalers.insert:

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

O corpo da solicitação precisa conter os campos name, target e autoscalingPolicy. autoscalingPolicy precisa definir cpuUtilization e maxNumReplicas.

Opcionalmente, é possível usar o campo coolDownPeriodSec, que informa ao autoescalador quantos segundos esperar após uma nova instância ser iniciada antes de considerar os dados da nova instância. Esse período de espera conta o tempo que a instância pode levar para ser inicializada, em que os dados de utilização coletados não são confiáveis para escalonamento automático. Depois que o período de espera for aprovado, o autoescalador começa a incluir os dados de utilização da instância para determinar se o grupo precisa ser dimensionado. O período de espera padrão é de 60 segundos.

Outra opção é ativar o escalonamento automático preditivo para escalonar antes da carga prevista. Para saber se o escalonamento automático preditivo é adequado para sua carga de trabalho, consulte Como usar o escalonamento automático preditivo.

{
 "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 mais informações sobre como ativar o escalonamento automático com base na utilização da CPU, faça o tutorial Como usar o escalonamento automático para aplicativos altamente escalonáveis.

Como o escalonador automático trata a utilização intensa da CPU

Durante períodos de intensa utilização da CPU, se a taxa de uso estiver próxima a 100%, o escalonador automático presumirá que o grupo já está muito sobrecarregado. Nesses casos, ele aumenta o número de máquinas virtuais em até 50%.

A seguir