Dimensionamento baseado na utilização da CPU


A forma mais simples de escalonamento automático é escalar um grupo de instâncias gerenciadas (MIG) com base na utilização de CPU de suas instâncias.

Você também pode dimensionar automaticamente um MIG com base na capacidade de atendimento do balanceamento de carga , nas métricas de monitoramento ou nos cronogramas .

Antes de começar

  • Revise as limitações do escalonador automático.
  • Leia sobre os fundamentos do escalonador automático.
  • Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar no Compute Engine selecionando uma das seguintes opções:

    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 as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

        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 mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.

Dimensionamento baseado na utilização da CPU

Você pode fazer o escalonamento automático com base na utilização média da CPU de um grupo gerenciado de instâncias (MIG). O uso dessa política instrui o escalonador automático a coletar a utilização da CPU das instâncias do grupo e determinar se ela precisa ser escalonada. Você define a utilização alvo da CPU que o escalonador automático deve manter e o escalonador automático trabalha para manter esse nível.

O escalonador automático trata o nível de utilização da CPU alvo como uma fração do uso médio de todas as vCPUs ao longo do tempo no grupo de instâncias. Se a utilização média do total de vCPUs exceder a utilização desejada, o escalonador automático adicionará mais instâncias de VM. Se a utilização média do total de vCPUs for menor que a utilização desejada, o escalonador automático removerá as instâncias. Por exemplo, definir uma utilização alvo de 0,75 informa ao autoescalador para manter uma utilização média de 75% entre todas as vCPUs no grupo de instâncias.

Você também pode escalar com base na utilização prevista da CPU. Para obter mais informações e ver se isso é adequado para sua carga de trabalho, consulte Dimensionamento baseado em previsões .

Habilite o escalonamento automático com base na utilização da CPU

Console

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

    Vá para grupos de instâncias

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

  3. Se não existir nenhuma configuração de escalonamento automático, em Autoscaling , clique em Configure autoscaling .

  4. Em Modo de escalonamento automático , selecione Ativado: adicione e remova instâncias do grupo para ativar o escalonamento automático.

  5. Especifique os números mínimo e máximo de instâncias que você deseja que o escalonador automático crie neste grupo.

  6. Na seção Sinais de escalonamento automático , se ainda não existir uma métrica de utilização de CPU existente, adicione uma:

    1. Clique em Adicionar um sinal .
    2. No menu suspenso Tipo de sinal , selecione Utilização da CPU .
    3. Insira a utilização desejada da CPU desejada. Este valor é tratado como uma porcentagem. Por exemplo, para 75% de utilização da CPU, insira 75 .
    4. Em Dimensionamento automático preditivo , selecione Desativado . Para saber mais sobre o escalonamento automático preditivo e se ele é adequado para sua carga de trabalho, consulte Dimensionamento baseado em previsões .
    5. Clique em Concluído .
  7. Você pode usar o período de inicialização para informar ao escalonador automático quanto tempo leva para seu aplicativo ser inicializado. Especificar um período de inicialização preciso melhora as decisões do escalonador automático. Por exemplo, ao expandir, o escalonador automático ignora dados de VMs que ainda estão sendo inicializadas porque essas VMs ainda podem não representar o uso normal do seu aplicativo. O período de inicialização padrão é de 60 segundos.

  8. Clique em Salvar .

gcloud

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

Você pode usar o sinalizador --cool-down-period para definir o período de inicialização, que informa ao escalonador automático quanto tempo leva para seu aplicativo inicializar. Especificar um período de inicialização preciso melhora as decisões do escalonador automático. Por exemplo, ao expandir, o escalonador automático ignora dados de VMs que ainda estão sendo inicializadas porque essas VMs ainda podem não representar o uso normal do seu aplicativo. O período de inicialização padrão é de 60 segundos.

Opcionalmente, você pode ativar o escalonamento automático preditivo para aumentar a escala antes da carga prevista. Para saber se o escalonamento automático preditivo é adequado para sua carga de trabalho, consulte Dimensionamento baseado em previsões .

Você pode verificar se o escalonamento automático foi habilitado com sucesso usando o subcomando instance-groups managed describe , que descreve o grupo de instâncias gerenciadas correspondente e fornece informações sobre quaisquer recursos de escalonamento automático para esse grupo de instâncias:

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

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

DESCANSAR

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 sua solicitação deve conter os campos name , target e autoscalingPolicy . autoscalingPolicy deve definir cpuUtilization e maxNumReplicas .

Você pode usar o campo coolDownPeriodSec para definir o período de inicialização, que informa ao escalonador automático quanto tempo leva para seu aplicativo inicializar. Especificar um período de inicialização preciso melhora as decisões do escalonador automático. Por exemplo, ao expandir, o escalonador automático ignora dados de VMs que ainda estão sendo inicializadas porque essas VMs ainda podem não representar o uso normal do seu aplicativo. O período de inicialização padrão é de 60 segundos.

Opcionalmente, você pode ativar o escalonamento automático preditivo para aumentar a escala antes da carga prevista. Para saber se o escalonamento automático preditivo é adequado para sua carga de trabalho, consulte Dimensionamento baseado 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 obter mais informações sobre como ativar o escalonamento automático com base na utilização da CPU, conclua o tutorial Usando o escalonamento automático para aplicativos altamente escaláveis .

Como o autoescalador lida com a utilização intensa da CPU

Durante períodos de utilização intensa da CPU, se a utilização estiver próxima de 100%, o escalonador automático estima que o grupo já pode estar muito sobrecarregado. Nestes casos, o autoescalador aumenta o número de máquinas virtuais em no máximo 50%.

O que vem a seguir