Solucionar problemas de alto uso de CPU em clusters do AKS

O alto uso da CPU é um sintoma de um ou mais aplicativos ou processos que exigem tanto tempo de CPU que o desempenho ou a usabilidade do computador são afetados. O alto uso da CPU pode ocorrer de várias maneiras, mas é causado principalmente pela configuração do usuário.

Quando um nó em um cluster do AKS (Serviço de Kubernetes do Azure) experimenta alto uso de CPU, os aplicativos em execução nele podem sofrer degradação no desempenho e na confiabilidade. Aplicativos ou processos também se tornam instáveis, o que pode levar a problemas além de respostas lentas.

Este artigo ajuda você a identificar os nós e contêineres que consomem CPU alta e fornece práticas recomendadas para resolve alto uso da CPU.

Sintomas

A tabela a seguir descreve os sintomas comuns de alto uso da CPU:

Sintoma Descrição
Fome de CPU Aplicativos com uso intensivo de CPU reduzem a velocidade de outros aplicativos no mesmo nó.
Alterações de estado lentas Os pods podem levar mais tempo para se preparar.
Estado do nó NotReady Um nó entra no estado NotReady . Esse problema ocorre porque o contêiner com alto uso de CPU faz com que a ferramenta de linha de comando Kubectl não responda.

Lista de verificação de solução de problemas

Para resolve alto uso da CPU, use ferramentas de monitoramento eficazes e aplique práticas recomendadas.

Etapa 1: identificar nós/contêineres com alto uso de CPU

Use qualquer um dos seguintes métodos para identificar nós e contêineres com alto uso da CPU:

  • Em um navegador da Web, use o recurso Container Insights do AKS no portal do Azure.

  • Em um console, use a ferramenta de linha de comando kubernetes (kubectl).

O Container Insights é um recurso dentro do AKS. Ele foi projetado para monitorar o desempenho das cargas de trabalho de contêiner. Você pode usar insights de contêiner para identificar nós, contêineres ou pods que impulsionam o alto uso da CPU.

Para identificar nós, contêineres ou pods que impulsionam o alto uso da CPU, siga estas etapas:

  1. Navegue até o cluster do portal do Azure.

  2. Em Monitoramento, selecione Insights.

    Captura de tela do Monitoramento em Insights

  3. Defina o intervalo de tempo apropriado.

    Captura de tela de um intervalo de tempo de seis horas.

  4. Localize os nós com alto uso de CPU e marcar se o uso da CPU do nó estiver estável.

    Selecione Nós. Defina Métrica como Uso de CPU (milicores) e defina o exemplo como Max. Use o recurso de classificação no Max para solicitar os nós por Max%. Os nós com o maior uso de CPU aparecem na parte superior.

    Na captura de tela a seguir, o nó usa apenas 12% da CPU máxima e está em execução há 16 dias.

    Captura de tela dos nós na seleção Monitoramento.

  5. Depois de localizar os nós com alto uso de CPU, selecione os nós para encontrar pods neles e seu uso de CPU.

    Captura de tela da opção insights para pods na seleção Monitoramento.

    Observação

    O percentual de uso de CPU ou memória para pods baseia-se na solicitação de CPU especificada para o contêiner. Ele não representa o percentual da CPU ou do uso de memória para o nó. Portanto, examine a CPU real ou o uso de memória em vez da porcentagem de uso de CPU ou memória para pods.

    Depois de obter a lista de pods com alto uso de CPU, você poderá mapeá-la para os aplicativos que causam o pico no uso da CPU.

Etapa 2: examinar as práticas recomendadas para evitar o alto uso da CPU

Examine a tabela a seguir para saber como implementar práticas recomendadas para evitar o alto uso da CPU:

Prática recomendada Descrição
Definir limites apropriados para contêineres O Kubernetes permite especificar solicitações e limites nos recursos para contêineres. Solicitações e limites de recurso representam o número mínimo e máximo de recursos que um contêiner pode usar. Recomendamos que você defina solicitações e limites apropriados para escolher a classe QoS (Qualidade de Serviço) do Kubernetes apropriada para cada pod.
Habilitar o HPA (Dimensionador Automático do Pod Horizontal) A configuração de limites apropriados, juntamente com a habilitação do HPA, pode ajudar a resolver o alto uso da CPU.
Selecione VMs SKU mais altas Para lidar com cargas de trabalho de CPU altas, use VMs SKU mais altas. Para fazer isso, crie um pool de nós, isole os nós para torná-los não programados e escorra o pool de nós existente.
Isolar cargas de trabalho do sistema e do usuário Recomendamos que você crie um pool de nós separado (diferente do pool de agentes) para executar suas cargas de trabalho. Isso pode evitar sobrecarregar o pool de nós do sistema e fornecer um melhor desempenho.

Referências

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.