Solución de problemas de uso elevado de CPU en clústeres de AKS

El uso elevado de CPU es un síntoma de una o varias aplicaciones o procesos que requieren tanto tiempo de CPU que el rendimiento o la facilidad de uso de la máquina se ven afectados. El uso elevado de CPU puede producirse de muchas maneras, pero principalmente se debe a la configuración del usuario.

Cuando un nodo de un clúster de Azure Kubernetes Service (AKS) experimenta un uso elevado de la CPU, las aplicaciones que se ejecutan en él pueden experimentar una degradación en el rendimiento y la confiabilidad. Las aplicaciones o procesos también se vuelven inestables, lo que puede provocar problemas más allá de respuestas lentas.

Este artículo le ayuda a identificar los nodos y contenedores que consumen cpu alta y proporciona procedimientos recomendados para resolver el uso elevado de la CPU.

Síntomas

En la tabla siguiente se describen los síntomas comunes del uso elevado de CPU:

Síntoma Descripción
Inanición de CPU Las aplicaciones que consumen mucha CPU ralentizan otras aplicaciones en el mismo nodo.
Cambios de estado lentos Los pods pueden tardar más tiempo en prepararse.
Estado del nodo NotReady Un nodo entra en el estado NotReady . Este problema se produce porque el contenedor con un uso elevado de CPU hace que la herramienta de línea de comandos de Kubectl no responda.

Lista de comprobación para la solución de problemas

Para resolver un uso elevado de la CPU, use herramientas de supervisión eficaces y aplique los procedimientos recomendados.

Paso 1: identificar nodos o contenedores con un uso elevado de CPU

Use cualquiera de los métodos siguientes para identificar nodos y contenedores con un uso elevado de CPU:

  • En un explorador web, use la característica Container Insights de AKS en el Azure Portal.

  • En una consola, use la herramienta de línea de comandos de Kubernetes (kubectl).

Container Insights es una característica de AKS. Está diseñado para supervisar el rendimiento de las cargas de trabajo de contenedor. Puede usar Container Insights para identificar nodos, contenedores o pods que impulsan un uso elevado de la CPU.

Para identificar nodos, contenedores o pods que impulsan un uso elevado de CPU, siga estos pasos:

  1. Vaya al clúster desde el Azure Portal.

  2. En Supervisión, seleccione Conclusiones.

    Captura de pantalla de la supervisión en Insights

  3. Establezca el intervalo de tiempo adecuado.

    Captura de pantalla de un intervalo de tiempo de seis horas.

  4. Busque los nodos con un uso elevado de CPU y compruebe si el uso de CPU del nodo es estable.

    Seleccione Nodos. Establezca Métrica en Uso de CPU (mil núcleos) y, a continuación, establezca el ejemplo en Máx. Use la característica de ordenación en Max para ordenar los nodos por Max%. Los nodos con mayor uso de CPU aparecen en la parte superior.

    En la captura de pantalla siguiente, el nodo solo usa el 12 % de la CPU máxima y se ha estado ejecutando durante 16 días.

    Captura de pantalla de los nodos en la selección supervisión.

  5. Una vez que encuentre los nodos con un uso elevado de CPU, seleccione los nodos para buscar pods en ellos y su uso de CPU.

    Captura de pantalla de la opción insights para pods en la selección supervisión.

    Nota:

    El porcentaje de uso de CPU o memoria para pods se basa en la solicitud de CPU especificada para el contenedor. No representa el porcentaje del uso de CPU o memoria para el nodo. Por lo tanto, examine el uso real de CPU o memoria en lugar del porcentaje de uso de CPU o memoria para pods.

    Una vez que obtenga la lista de pods con un uso elevado de LA CPU, puede asignarlo a las aplicaciones que causan el aumento del uso de CPU.

Paso 2: Revisión de los procedimientos recomendados para evitar un uso elevado de la CPU

Revise la tabla siguiente para obtener información sobre cómo implementar los procedimientos recomendados para evitar un uso elevado de la CPU:

Procedimiento recomendado Descripción
Establecimiento de límites adecuados para contenedores Kubernetes permite especificar solicitudes y límites en los recursos de los contenedores. Las solicitudes de recursos y los límites representan el número mínimo y máximo de recursos que puede usar un contenedor. Se recomienda establecer las solicitudes y los límites adecuados para elegir la clase de calidad de servicio (QoS) de Kubernetes adecuada para cada pod.
Habilitación del escalador automático de pods horizontal (HPA) Establecer los límites adecuados junto con la habilitación de HPA puede ayudar a resolver el uso elevado de la CPU.
Selección de máquinas virtuales de SKU más altas Para controlar cargas de trabajo de CPU elevadas, use máquinas virtuales de SKU más altas. Para ello, cree un nuevo grupo de nodos, acorte los nodos para que no se puedan seleccionar y purgar el grupo de nodos existente.
Aislar cargas de trabajo del sistema y del usuario Se recomienda crear un grupo de nodos independiente (distinto del grupo de agentes) para ejecutar las cargas de trabajo. Esto puede impedir la sobrecarga del grupo de nodos del sistema y proporcionar un mejor rendimiento.

Referencias

Ponte en contacto con nosotros para obtener ayuda

Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.