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 fazer o escalonamento automático de um MIG com base na capacidade de disponibilização do balanceamento de carga, métricas do Monitoring ou 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, caso ainda não tenha feito isso. Com isso, você confirma sua identidade para acesso a serviços e APIs do Trusted Cloud by S3NS . 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 Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.

    gcloud

    1. Instale a CLI do Google Cloud e faça login na gcloud CLI com sua identidade federada. Depois de fazer login, inicialize a CLI do Google Cloud executando o seguinte comando:

      gcloud init
    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 e faça login na gcloud CLI com sua identidade federada. Depois de fazer login, inicialize a CLI do Google Cloud executando o seguinte comando:

      gcloud init

    Saiba mais em Autenticar para usar REST na documentação de autenticação do Trusted 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 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 conferir se isso é adequado à 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 do Cloud, acesse a página Grupos de instâncias.

    Acesse grupo de instâncias

  2. Se você tiver um grupo de instâncias, clique no nome dele e em 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 tem 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 Modelo de instância, selecione um modelo.
    3. Na seção Local, dependendo se você está criando um MIG zonal ou regional, escolha uma opção da seguinte maneira:

      • 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 de utilização 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 autoescalador crie nesse grupo.
    2. Para editar a meta de uso da CPU, clique no indicador de uso da CPU para expandir 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 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 leva a inicialização do aplicativo. Especificar um período de inicialização preciso melhora as decisões do escalonador automático. Por exemplo, ao escalonar horizontalmente, o escalonador automático ignora os dados das VMs que ainda estiverem 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 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 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, ao escalonar horizontalmente, o escalonador automático ignora os dados das VMs que ainda estiverem 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 escalonar 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 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 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.

O exemplo a seguir 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, ao escalonar horizontalmente, o escalonador automático ignora os dados das VMs que ainda estiverem 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 escalonar 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 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