Como aplicar recomendações de tipo de máquina para MIGs


O Compute Engine fornece recomendações de tipo de máquina para grupos de instâncias gerenciadas (MIGs, na sigla em inglês) para ajudar a melhorar o custo e o desempenho da carga de trabalho. Use estas recomendações para decidir se é preciso redimensionar o tipo de máquina de suas instâncias para adicionar ou remover recursos de vCPU e de memória.

Para saber mais sobre os tipos de máquinas disponíveis para instâncias de VM, leia a documentação tipos de máquina.

As recomendações de tipo de máquina também são conhecidas como recomendações de redimensionamento.

Antes de começar

  • Leia a documentação do console do Google Cloud.
  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud. Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine da seguinte maneira.

    Selecione a guia para como planeja usar as amostras nesta página:

    Console

    Quando você usa o console do Google Cloud para acessar os serviços e as APIs do Google Cloud, não é necessário configurar a autenticação.

    gcloud

    1. Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init
    2. Defina uma região e uma zona padrão.

    REST

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

      Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init

Restrições

As recomendações são para grupos de instâncias gerenciadas que estão em uma única zona e não têm escalonamento automático ou balanceamento de carga.

Preços

As recomendações de tipo de máquina estão disponíveis gratuitamente. Se você aplicar uma recomendação para redimensionar o tipo de máquina da sua instância, receberá uma cobrança pela opção escolhida.

Casos de uso

Aproveite as recomendações do tipo de máquina se você tiver as seguintes condições de carga de trabalho:

  • Cargas de trabalho com aumentos e reduções periódicos no tráfego, como as suscetíveis ao tráfego sazonal.
  • Cargas de trabalho que são subutilizadas na CPU e RAM porque são limitadas por outras restrições, como capacidade de leitura-gravação.
  • Cargas de trabalho que executam software que requer licenças de software individuais e não podem adicionar mais instâncias. Nesse caso, é possível confiar nas recomendações de tipo de máquina para escalonar os tipos de máquina e, ao mesmo tempo, manter constante o número de instâncias de VM.
  • Cargas de trabalho que não conseguem se adaptar dinamicamente a um número variável de instâncias, como as que não são adequadas para o escalonamento automático.

Talvez você não queira usar as recomendações de tipo de máquina por um dos seguintes motivos:

  • Suas cargas de trabalho apresentam picos muito breves de CPU. Como as recomendações de tipo de máquina são baseadas na utilização média da CPU em intervalos de 60 segundos, elas podem não ser geradas com rapidez suficiente para capturar picos mais curtos. Os apps com picos de uso curtos podem precisar ser executados em um tipo de máquina maior do que o recomendado. Também é possível ativar o escalonamento automático para acomodar esses picos.
  • Seus picos de carga ocorrem com menos frequência do que uma vez a cada oito dias (por exemplo, mensalmente). Picos não frequentes são ignorados pelo algoritmo de redimensionamento, que analisa apenas os últimos oito dias do histórico.
  • Cada instância em seu MIG lida com uma carga de trabalho drasticamente diferente. Nessa situação, as recomendações otimizam as instâncias de VM com a carga mais alta, o que sobrecarrega a maioria das instâncias de VM no grupo.
  • O MIG subutilizou as VMs porque não é disponibilizado em tempo real e tem como objetivo fornecer capacidade de failover pronta para ser veiculada.
  • O MIG tem VMs sobrecarregadas por um dos seguintes motivos:
    • O licenciamento de software requer um tamanho mínimo de máquina.
    • É preciso atender aos requisitos de IOPS de armazenamento ou rede que estão disponíveis apenas com um tipo de máquina mínimo.

Como funcionam as recomendações de tipo de máquina

O Compute Engine monitora a utilização da CPU e da memória de máquinas virtuais em execução e faz recomendações usando os dados dos últimos 8 dias. Para recomendar o melhor tipo de máquina única para todas as instâncias em um grupo de instâncias gerenciadas, o Compute Engine gera uma recomendação de tipo de máquina padrão para instâncias individuais e, após o ajuste de outliers, escolhe um tipo de máquina que não reduz o tamanho de nenhuma instância da VM. As instâncias que não estiverem sendo executadas, como a interrupção ou reinicialização de instâncias de VM, não serão incluídas no cálculo.

O Compute Engine pode fazer recomendações como estas:

  • Se o grupo de instâncias teve baixa utilização da CPU na maioria das vezes, o Compute Engine recomenda um tipo de máquina com menos CPUs virtuais.
  • Se o grupo de instâncias tiver usado muita CPU na maior parte do tempo, o Compute Engine recomenda um tipo de máquina com mais CPUs virtuais.
  • Se o grupo de instâncias não tiver usado uma grande parte da memória, o Compute Engine recomenda um tipo de máquina com menos memória.
  • Se seu grupo de instâncias tem usado ativamente uma grande fração da memória na maior parte do tempo. O Compute Engine recomenda um tipo de máquina com mais memória.

Pode ser que o Compute Engine recomende o uso de um tipo de máquina padrão ou personalizado. Há algumas limitações quanto ao volume de memória e à vCPU disponíveis para uma máquina. Em especial, aumentar um recurso pode exigir a ampliação de outro simultaneamente, de modo a seguir as especificações de um tipo de máquina válido. Além disso, o Compute Engine recomenda apenas os tipos de máquinas disponíveis na zona em que a instância está sendo executada.

Para mais informações, consulte Especificações personalizadas de tipo de máquina.

Se a carga de trabalho do grupo de instâncias gerenciadas for muito diferente em instâncias individuais, algumas instâncias poderão ser superdimensionadas para que instâncias totalmente utilizadas tenham recursos suficientes, de acordo com a recomendação. Por exemplo, o Compute Engine poderá fazer a recomendação a seguir para comportar a carga de trabalho da instância 4, mesmo que as instâncias 1, 2, 3 e 5 estejam superdimensionadas e subutilizadas:

Recomendações feitas para um grupo de instâncias gerenciadas
Exemplo de superdimensionamento por causa de cargas de trabalho diferentes nas instâncias gerenciadas

Por esse motivo, as recomendações para o grupo de instâncias gerenciadas funcionam melhor quando as instâncias têm uma carga de trabalho razoavelmente distribuída.

Para estimativas de diferença de custo, o custo de um grupo de instâncias é baseado no uso da semana anterior (antes do desconto por uso prolongado) e é extrapolado para 30 dias. Ele costuma ser comparado com o custo do tipo de máquina recomendado antes do desconto por uso prolongado. Para conhecer os preços e detalhes, leia a documentação sobre preços.

Como visualizar recomendações de tipo de máquina

O Compute Engine disponibiliza as recomendações pelo console do Google Cloud. É possível ver as recomendações de tipo de máquina pelo Recomendador usando a gcloud CLI ou a REST.

Console

  1. No Console do Google Cloud, acesse a página Grupos de instâncias.

    Acessar a página "Grupos de instâncias"

  2. Selecione o projeto e clique em Continuar.
  3. Observe a coluna Recomendação para avaliar as recomendações de grupos de instâncias gerenciadas individuais. Também classifique a coluna por valor estimado de economia. Se não houver recomendações ao lado dos grupos de instâncias, significa que o Compute Engine não tem recomendações a fazer.

    Coluna de recomendações.

  4. Se o grupo de instâncias tiver dois modelos de instância, o Compute Engine fornecerá recomendações para cada um deles. Clique em uma delas para ver recomendações para o respectivo modelo de instância.

    Recomendações para vários modelos

gcloud

Use o comando gcloud recommender recommendations list e especifique o recomendador de dimensionamento de grupo de instâncias gerenciadas por VM.

gcloud recommender recommendations list \
      --recommender=google.compute.instanceGroupManager.MachineTypeRecommender \
      --project [PROJECT_ID] \
      --location [ZONE] \
      --format=yaml

Por exemplo:

gcloud recommender recommendations list \
    --recommender=google.compute.instanceGroupManager.MachineTypeRecommender \
    --project my-project \
    --location us-central1-a \
    --format=yaml

A resposta inclui os seguintes campos para cada recomendação:


---
content:
  ...
  operationGroups:
  - operations:
    - action: test
      path: /properties/machineType
      resource: //compute.googleapis.com/projects/my-project/global/instanceTemplates/my-old-template
      resourceType: compute.googleapis.com/InstanceTemplate
      value: n1-standard-4
    - action: copy
      path: /
      resource: //compute.googleapis.com/projects/my-project/global/instanceTemplates/$new-it-name
      resourceType: compute.googleapis.com/InstanceTemplate
      sourcePath: /
      sourceResource: //compute.googleapis.com/projects/my-project/global/instanceTemplates/my-old-template
    - action: replace
      path: /name
      resource: //compute.googleapis.com/projects/my-project/global/instanceTemplates/$new-it-name
      resourceType: compute.googleapis.com/InstanceTemplate
      value: $new-it-name
    - action: replace
      path: /properties/machineType
      resource: //compute.googleapis.com/projects/my-project/global/instanceTemplates/$new-it-name
      resourceType: compute.googleapis.com/InstanceTemplate
      value: custom-2-5632
  - operations:
    - action: replace
      path: /versions/*/name
      pathValueMatchers:
        versions/*/instanceTemplate:
          matchesPattern: .*global/instanceTemplates/my-old-template
      resource: //compute.googleapis.com/projects/my-project/zones/us-central1-a/instanceGroupManagers/example-group
      resourceType: compute.googleapis.com/InstanceGroupManager
      value: global/instanceTemplates/$new-it-name
...
description: Save cost by changing machine type from n1-standard-4 to custom-2-5120.
...
name: projects/823742397239/locations/us-central1-a/recommenders/google.compute.instanceGroupManager.MachineTypeRecommender/recommendations/c50a1c41-7e65-417d-a32e-45248a2cb318
...

Para mais informações, consulte os documentos do Recommender.

REST

Use a API Recommender com o ID de recomendação do tipo de máquina MIG.

PROJECT_ID=my-project
LOCATION=us-central1-c
RECOMMENDER_ID=google.compute.instanceGroupManager.MachineTypeRecommender

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  https://recommender.googleapis.com/v1/projects/$PROJECT_ID/locations/$LOCATION/recommenders/$RECOMMENDER_ID/recommendations

A resposta inclui os seguintes campos para cada recomendação:

Para mais informações, consulte os documentos do Recommender.

As recomendações para um novo grupo de instâncias gerenciadas serão exibidas 24 horas após a criação.

Depois disso, as recomendações são atualizadas regularmente durante todo o dia.

Como aplicar recomendações a grupos de instâncias

Se você quiser aplicar as recomendações feitas pelo Compute Engine, poderá redimensionar as instâncias gerenciadas diretamente no console. Como alternativa, é possível percorrer manualmente as operações de redimensionamento. A API Recommender retorna uma série de operações de redimensionamento. Consulte Grupos de operações para mais informações.

Ao aplicar uma recomendação a um grupo de instâncias gerenciadas, você realiza as seguintes operações:

  1. Clona os modelos de instância que estão sendo usados pelo grupo de instâncias gerenciadas.
  2. Modifica os modelos de instância clonados com base nas recomendações e nas alterações que você quer fazer.
  3. Usa o managed instance group updater para aplicar o novo modelo. Se o grupo de instâncias tiver dois modelos de instância:

    1. Aplique recomendações somente para um modelo de instância de cada vez.
    2. Um grupo gerenciado de instâncias poderá manter, no máximo, dois modelos de instância de cada vez, de modo que não será possível aplicar uma recomendação mantendo dois outros modelos de instância. No entanto, será possível aplicar uma recomendação caso o grupo de instâncias tenha apenas um modelo.

Para redimensionar instâncias gerenciadas diretamente no console, realize as ações a seguir:

  1. No Console do Google Cloud, acesse a página Grupos de instâncias.

    Acessar a página "Grupos de instâncias"

  2. Clique no texto de recomendação do grupo de instâncias que você quer atualizar.

    Como selecionar uma coluna de recomendações.

  3. Um pop-up é exibido com mais detalhes e com uma opção para Cancelar, Dispensar recomendação ou Continuar. Para analisar e aplicar a recomendação, clique em Continuar.

  4. Na página Revisar recomendação, a recomendação é explicada em detalhes. Se você continuar com a recomendação, o Compute Engine atualizará todas as instâncias no grupo com o modelo antigo para o novo.

  5. (Avançado) Para personalizar como o novo modelo será implantado em suas instâncias, clique em Personalizar implantação. A tela Configuração de implantação é exibida.

    1. Se você quiser excluir e criar instâncias ativamente usando o novo modelo de instância, escolha Automático. Se você quiser aplicar a atualização somente quando a instância for criada por outros meios, como um redimensionamento, ou quando uma nova instância for adicionada ao grupo, escolha Selecionar.
    2. Se você selecionar atualizações automáticas, escolha Manter nomes de instâncias ao substituir instâncias.
      • Se você optar por manter os nomes das instâncias, em Instâncias extras temporárias, escolha quantas instâncias extras temporárias serão criadas acima do tamanho de destino do grupo de instâncias gerenciadas. Quanto mais instâncias você permitir, mais rápida será a atualização, ao custo de instâncias adicionais. O padrão é uma instância adicional.
    3. Em Máximo de instâncias indisponíveis, escolha quantas instâncias podem ficar off-line por vez durante essa atualização. Esse número também inclui todas as instâncias que não estão disponíveis por outros motivos. Por exemplo, se o grupo de instâncias estiver em processo de redimensionamento, as instâncias no meio da criação poderão não estar disponíveis. Essas instâncias estariam incluídas nesse número. O padrão é a indisponibilidade de uma instância por vez.
    4. Opcional: expanda Mostrar opções avançadas. Em Tempo de espera mínimo, escolha quantos segundos quer aguardar antes que uma instância recém-criada seja marcada como atualizada. O tempo começa depois de uma verificação de integridade bem-sucedida. Use esse recurso para controlar a taxa em que modelo de instância é aplicado.
  6. Para aplicar as alterações, clique em Salvar.

  7. Quando você estiver pronto para implantar as alterações, clique em Implantar.

Como dispensar recomendações

Ao terminar de usar uma recomendação, é possível dispensá-la do console. No console, a ação de dispensar remove uma recomendação da estimativa de economia total e também minimiza a aparência da sugestão ao torná-la cinza.

Dispensar uma recomendação por meio do console não afeta a lista de recomendações retornada pela API Recommender. Para gerenciar o estado das recomendações retornadas pela API Recommender, consulte Como usar a API.

Para dispensar uma única recomendação do console, siga estas etapas:

  1. No Console do Google Cloud, acesse a página Grupos de instâncias.

    Acessar a página "Grupos de instâncias"

  2. Clique no texto de recomendação que você quer dispensar. É exibido um pop-up com mais detalhes, além de um botão Dispensar recomendação.

  3. Clique em Dispensar.

Para restaurar uma recomendação no console, siga estas etapas:

  1. Na página Grupos de instâncias, clique no texto cinza da recomendação a ser restaurada.

    Recomendação dispensada.

  2. É exibido um pop-up com mais detalhes e um botão Restaurar recomendação.

  3. Clique em Restaurar.

Como usar o agente do Monitoring para ter recomendações mais precisas

O Cloud Monitoring oferece um agente de monitoramento que coleta mais métricas de disco, CPU, rede e processo das instâncias de VMs. É possível instalar o agente de monitoramento nas instâncias das VMs. Dessa maneira, ele pode acessar os recursos do sistema e os serviços de aplicativos para coletar dados.

Se o agente do Monitoring estiver instalado e em execução em uma instância da VM, as métricas da CPU e de memória coletadas pelo agente serão usadas automaticamente para calcular as recomendações de tipo de máquina. Em comparação com as métricas padrão do Compute Engine, as métricas do agente de monitoramento proporcionam insights melhores sobre a utilização dos recursos da instância. Isso permite que o mecanismo de recomendação faça uma estimativa melhor dos requisitos de recursos e apresente recomendações mais precisas.

Para ver como instalar o agente do Cloud Monitoring, consulte este link.

A seguir