Como aplicar recomendações de dimensionamento de instâncias 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 as diferentes opções de dimensionamento disponíveis para instâncias de VM, leia a documentação Tipos de máquina.

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

Antes de começar

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 dimensionamento são gratuitas.

Casos de uso

Aproveite as recomendações de dimensionamento quando tiver as condições de cargas de trabalho a seguir:

  • 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 dimensionamento para dimensionar seus tipos de máquinas e, ao mesmo tempo, manter constante o número de instâncias de VMs.
  • 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 dimensionamento por um dos motivos a seguir:

  • Suas cargas de trabalho apresentam picos muito breves de CPU. Como as recomendações de dimensionamento 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 dimensionamento

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 oito 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 dimensionamento 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 ver recomendações de dimensionamento

O Compute Engine disponibiliza as recomendações por meio do Console do Google Cloud. As recomendações também estão disponíveis na versão Beta do Recomendador usando a ferramenta gcloud ou a API.

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 beta recommender recommendations list e especifique o recomendador de dimensionamento de grupo de instâncias gerenciadas por VM.

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

Por exemplo:

gcloud beta 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 a documentação do Recomendador.

API

Use a versão beta da API Recommender com o ID do recomendador para o recomendador de tipo de máquina para grupos de instâncias gerenciadas.

Se você ainda não estiver familiarizado com os pré-requisitos de autenticação para chamar APIs do Google Cloud, consulte a Visão geral da autenticação.

O exemplo de script bash a seguir usa a autenticação de usuário final com uma credencial de cliente do OAuth. O script usa a ferramenta de linha de comando Google oauth2l para conseguir um token de acesso do OAuth 2.0 e, em seguida, cria uma solicitação curl usando o token.

PROJECT_ID=my-project
LOCATION=us-central1-c
RECOMMENDER_ID=google.compute.instanceGroupManager.MachineTypeRecommender
OAUTH_JSON=~/client_secrets.json  # credentials for service account
OAUTH_HEADER="$(oauth2l header --json $OAUTH_JSON cloud-platform)"

curl -H "$OAUTH_HEADER" https://recommender.googleapis.com/beta/projects/$PROJECT_ID/locations/$LOCATION/recommenders/$RECOMMENDER_ID/recommendations

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

  • name: o nome da recomendação.
  • description Uma explicação legível da recomendação.
  • operationGroups: grupos de operações que podem ser executadas em série para aplicar a recomendação.

Para mais informações, consulte a documentação do Recomendador.

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 de instâncias gerenciadas poderá manter, no máximo, dois modelos de instância por vez. Portanto, não será possível executar a recomendação mantendo dois outros modelos de instância. No entanto, será possível executar 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

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

    Como selecionar uma coluna de recomendações.

  2. 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.

  3. A recomendação é explicada em detalhes na próxima tela. Se você continuar com a recomendação, o Compute Engine criará um modelo de instância e atualizará todas as instâncias no grupo de instâncias para usar o novo modelo.

  4. (Avançado) Para personalizar como o novo modelo será implantado em suas instâncias, clique em Personalizar implantação. Uma tela será exibida.

    1. Em Modelo, é possível escolher se o novo modelo precisa ser aplicado a 100% das instâncias no grupo de instâncias ou apenas a um subconjunto delas.
    2. No modo Atualização, é possível escolher se o Compute Engine exclui e cria instâncias ativamente usando o novo modelo de instância (Proativo) ou se aplica a atualização apenas se a instância for criada por outros meios, como um redimensionamento ou quando uma nova instância for adicionado ao grupo (Oportunista).
    3. Em Máximo de sobretensão, escolha quantas instâncias temporárias a mais 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.
    4. Em Máximo indisponível, 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.
    5. 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 atributo para controlar a taxa em que modelo de instância é aplicado.
  5. Para aplicar as alterações, clique no botão Salvar.

  6. 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 recomendação, tornando-a 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

    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.
  2. Clique em Dispensar recomendação.

Para dispensar todas as recomendações, clique no botão Dispensar todas na página Grupos de instâncias.

Dispensar recomendações.

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 recomendação.

Como usar o agente de monitoramento para ter recomendações mais precisas

O Stackdriver Monitoring oferece um agente de monitoramento que coleta mais métricas de disco, CPU, rede e processos com base nas instâncias das 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 esses dados.

Se o agente de monitoramento estiver instalado e em execução em uma instância de VM, as métricas de CPU e de memória coletadas por ele serão usadas automaticamente para calcular as recomendações de dimensionamento. 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 instalar, consulte Como instalar o agente do Stackdriver Monitoring.

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Compute Engine