Escalonamento com base no uso da CPU

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

Também é possível fazer o escalonamento automático de um MIG com base na capacidade de disponibilização do balanceamento de carga, nas métricas do Monitoring ou em programações.

Antes de começar

  • Analise as limitações do escalonador automático.
  • Leia sobre os fundamentos do escalonador automático.
  • Configure a autenticação, se ainda não tiver feito isso. Com isso, você confirma sua identidade para acesso a serviços e APIs do Google Cloud . Para executar código ou exemplos em um ambiente de desenvolvimento local, faça a autenticação no Compute Engine com um destes métodos:

    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. Instale a CLI do Google Cloud. Após a instalação, inicialize a CLI do Google Cloud executando o seguinte comando:

      gcloud init

      Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

    2. Set a default region and zone.

    REST

    Para usar as amostras da API REST desta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

      Instale a CLI do Google Cloud. Após a instalação, inicialize a CLI do Google Cloud executando o seguinte comando:

      gcloud init

      Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

    Saiba mais em Autenticar para usar REST na documentação de autenticação do Google Cloud .

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 pelas instâncias do grupo é coletado no escalonador automático e é possível determinar se o escalonamento é necessário. Você define a meta de uso da CPU que será mantida pelo escalonador automático, 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 pretendida, o escalonador automático vai 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 fazer o escalonamento com base na previsão de uso da CPU. Para saber mais e descobrir se essa configuração é adequada para sua carga de trabalho, consulte Escalonamento com base em previsões.

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

Console

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

    Acessar Grupos de instâncias

  2. Se você tiver um grupo de instâncias, clique no nome dele e selecione Editar. Na página de edição do grupo de instâncias, faça o seguinte:

    1. Clique em Tamanho do grupo e escalonamento automático para abrir a seção.
    2. Clique em Configurar escalonamento automático.
  3. Se você não tiver um grupo de instâncias, clique em Criar grupo de instâncias e faça o seguinte:

    1. No campo Nome, especifique um nome para o grupo.
    2. Na lista Modelos de instância, selecione um modelo.
    3. Na seção Local, escolha uma das opções abaixo de acordo com a criação de um MIG zonal ou regional:

      • Para um MIG zonal, selecione Zona única e escolha uma região e uma zona.
      • Para um MIG regional, selecione Várias zonas e escolha uma região e as zonas.
  4. Na seção Escalonamento automático, um indicador de escalonamento automático do uso da CPU é adicionado por padrão. Você pode usar os valores padrão do indicador ou fazer o seguinte:

    1. Especifique os números mínimo e máximo de instâncias que você quer que o escalonador automático crie no grupo.
    2. Para editar a meta de uso da CPU, clique no indicador de uso da CPU para abrir a seção e especificar a porcentagem.

      1. Em Escalonamento automático preditivo, selecione Desativado. Para saber mais sobre o escalonamento automático preditivo e descobrir se ele é adequado para sua carga de trabalho, consulte Escalonamento com base em previsões.
    3. Clique em Concluído.

  5. Use o Período de inicialização para informar ao escalonador automático quanto tempo demora a inicialização do aplicativo. Especificar um período de inicialização preciso melhora as decisões do escalonador automático. Por exemplo, durante o escalonamento horizontal, o escalonador automático ignora os dados das VMs que ainda estão sendo inicializadas, porque é possível que elas ainda não representem o uso regular do aplicativo. O período de inicialização padrão é de 60 segundos.

  6. Clique em Salvar.

gcloud

Use o subcomando set-autoscaling para ativar o escalonamento automático de um grupo gerenciado de instâncias. Por exemplo, o comando a seguir cria um escalonador automático com uma meta de uso da CPU de 60%. Além do parâmetro --target-cpu-utilization, o parâmetro --max-num-replicas também é necessário para criar um escalonador 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

Use a flag --cool-down-period para definir o período de inicialização, que informa ao escalonador automático quanto tempo leva para o aplicativo ser inicializado. Especificar um período de inicialização preciso melhora as decisões do escalonador automático. Por exemplo, durante o escalonamento horizontal, o escalonador automático ignora os dados das VMs que ainda estão sendo inicializadas, porque é possível que elas ainda não representem o uso regular do aplicativo. O período de inicialização padrão é de 60 segundos.

Outra opção é ativar o escalonamento automático preditivo para realizar o escalonamento horizontal antes da carga prevista. Para saber se o escalonamento automático preditivo é adequado para sua carga de trabalho, consulte Escalonamento com base em previsões.

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

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

Para uma lista de flags e comandos gcloud disponíveis, consulte a referência de gcloud.

REST

Para criar um escalonador automático, use o método autoscalers.insert para um MIG zonal ou o método regionAutoscalers.insert para um MIG regional.

Este exemplo cria um escalonador automático para um MIG zonal:

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.

Use o campo coolDownPeriodSec para definir o período de inicialização, que informa ao escalonador automático quanto tempo leva para o aplicativo ser inicializado. Especificar um período de inicialização preciso melhora as decisões do escalonador automático. Por exemplo, durante o escalonamento horizontal, o escalonador automático ignora os dados das VMs que ainda estão sendo inicializadas, porque é possível que elas ainda não representem o uso regular do aplicativo. O período de inicialização padrão é de 60 segundos.

Outra opção é ativar o escalonamento automático preditivo para realizar o escalonamento horizontal antes da carga prevista. Para saber se o escalonamento automático preditivo é adequado para sua carga de trabalho, consulte Escalonamento com base em previsões.

{
  "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 saber como ativar o escalonamento automático com base no uso da CPU, confira o tutorial Como usar o escalonamento automático para aplicativos altamente escalonáveis.

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

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

A seguir