Identificar cargas de trabalho subprovisionadas e superprovisionadas

Neste documento, explicamos como identificar cargas de trabalho subprovisionadas e superprovisionadas que são executadas em clusters do Google Kubernetes Engine (GKE) usando insights e recomendações. Depois de verificar se as cargas de trabalho identificadas se beneficiariam da recomendação de escalonar verticalmente ou horizontal, faça a mudança recomendada para economizar custos ou aumentar a confiabilidade da sua carga de trabalho. Se possível, a recomendação inclui a economia ou o custo mensal projetado. Para mais informações, consulte Entender as estimativas de custo ou economia.

O GKE fornece esses insights sobre cargas de trabalho executadas em clusters do Autopilot e Standard. O GKE também fornece recomendações semelhantes para clusters inteiros. Para mais informações, consulte Identificar clusters do GKE com provisionamento insuficiente e excessivo.

O GKE monitora seus clusters e fornece orientações para otimizar o uso com o Active Assist, um serviço que oferece recomendações que geram insights e recomendações para usar recursos no Google Cloud. Para mais informações sobre como gerenciar insights e recomendações, consulte Otimizar o uso do GKE com insights e recomendações.

Receber insights e recomendações para cargas de trabalho subprovisionadas e superprovisionadas

O GKE mostra esses insights e recomendações nos seguintes locais do console Google Cloud depois de observar o comportamento específico discutido na seção a seguir:

As recomendações têm os seguintes títulos na página Cargas de trabalho:

  • Cargas de trabalho com provisionamento excessivo: "Diminua as solicitações de recursos para reduzir custos"
  • Cargas de trabalho com provisionamento insuficiente: "Aumente as solicitações de recursos para melhorar a confiabilidade"

Você também pode receber todos os tipos de insights e recomendações pela CLI do Google Cloud ou pela API Recommender. Para encontrar esses tipos especificamente, siga as instruções para ver insights e recomendações e filtre usando os subtipos WORKLOAD_UNDERPROVISIONED e WORKLOAD_OVERPROVISIONED.

Depois de identificar cargas de trabalho subprovisionadas ou provisionadas em excesso, consulte as considerações ao redimensionar cargas de trabalho.

Como o GKE identifica cargas de trabalho subprovisionadas e superprovisionadas

A tabela a seguir descreve os indicadores que o GKE usa para identificar cargas de trabalho subprovisionadas e superprovisionadas que podem ser escalonadas verticalmente ou reduzidas, além do limite de cada indicador. Além disso, essa tabela mostra a ação recomendada para esse cenário.

Subtipo Sinal Período de observação Detalhes Recomendação
WORKLOAD_UNDERPROVISIONED O uso da CPU ou da memória está alto Últimos 15 dias Uma carga de trabalho está subprovisionada quando a utilização de CPU ou memória é superior a 150% por pelo menos 10% do tempo nos últimos 15 dias. Escalonar verticalmente a carga de trabalho para aumentar a confiabilidade
WORKLOAD_OVERPROVISIONED O uso da CPU ou da memória está baixo Últimos 15 dias Uma carga de trabalho é superprovisionada quando a utilização de CPU ou memória é inferior a 50% por pelo menos 90% do tempo nos últimos 15 dias. Reduza escala vertical da sua carga de trabalho para economizar custos

O GKE também usa as seguintes diretrizes para determinar quando fornecer insights e recomendações:

  • O GKE não gera recomendações para a métrica de destino do escalonamento automático horizontal de pods (HPA) porque o uso dessa métrica pode causar interferência.
  • Se o escalonamento automático vertical de pods (VPA) estiver ativado, os valores de solicitação serão gerenciados automaticamente, e o GKE não precisará gerar uma recomendação.
  • O GKE pode esperar até três dias antes de gerar recomendações para novas cargas de trabalho.

Entender as estimativas de custo ou economia

Se possível, a recomendação do GKE inclui uma estimativa que projeta o custo ou a economia mensal se você dimensionar corretamente a carga de trabalho. Essa estimativa é derivada dos custos da carga de trabalho, com base na média ponderada dos valores de solicitação combinados com o custo de CPU e memória da carga de trabalho nos últimos 30 dias.

Os custos ou economias estimados são projeções baseadas em gastos anteriores e não são uma garantia de custos ou economias futuros.

Para conferir essas estimativas, verifique se o seguinte é verdadeiro:

  • Você tem a permissão billing.accounts.getSpendingInformation necessária para acessar informações de gastos. Para mais informações, consulte Acesso ao Cloud Billing.
  • A alocação de custos do GKE está ativada para o cluster. Para mais informações, consulte Ativar a alocação de custos do GKE.

Para mais informações sobre o custo de todos os seus clusters do GKE, incluindo um detalhamento mais granular com base em namespaces e cargas de trabalho, consulte Receber informações importantes sobre gastos para sua alocação de recursos e custos de cluster do GKE.

Para mais informações sobre os custos de execução de um cluster do GKE, consulte Preços do GKE.

Considerações ao ajustar o tamanho das cargas de trabalho

Antes de seguir uma recomendação para escalonar verticalmente ou reduzir uma carga de trabalho, considere o seguinte:

  • Analise a utilização de recursos da carga de trabalho para saber como ela está funcionando e se está usando mais ou menos CPU e memória do que o esperado. Para instruções, consulte Analisar solicitações de recursos.
  • As cargas de trabalho de processamento em lote podem manter intencionalmente uma alta utilização para eficiência de custos. Se os recursos alocados forem suficientes para os jobs em lote, não será necessário escalonar verticalmente a carga de trabalho altamente utilizada, que foi identificada como subprovisionada.
  • O GKE tem visibilidade limitada do uso da memória real de cargas de trabalho baseadas na Máquina Virtual Java (JVM). Use mais cautela antes de aplicar recomendações para esses tipos de cargas de trabalho.

Implementar a recomendação para ajustar o tamanho de uma carga de trabalho

É possível ajustar o tamanho de uma carga de trabalho para corresponder melhor à utilização de recursos dela fazendo o seguinte:

  • Ative o escalonamento automático vertical de pods para a carga de trabalho. Para mais informações, consulte Definir solicitações de recursos de pods automaticamente.
  • Mude as solicitações e os limites manualmente de acordo com a recomendação:

    • Carga de trabalho com provisionamento insuficiente: para implementar a recomendação de dimensionar corretamente uma carga de trabalho com provisionamento insuficiente, aumente as solicitações e os limites de recursos dela. Ao implementar essa recomendação, você ajuda a garantir que sua carga de trabalho permaneça confiável porque tem a quantidade adequada de recursos para os aplicativos.
    • Carga de trabalho com provisionamento excessivo: para implementar a recomendação de ajuste de tamanho de uma carga de trabalho com provisionamento excessivo, diminua as solicitações e os limites de recursos da carga de trabalho. Ajuste as alocações de CPU e memória do cluster para atender às necessidades da carga de trabalho. Ao implementar essa recomendação, você ajuda a garantir que use apenas os recursos necessários para executar sua carga de trabalho.

A seguir