Compartir a través de


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

El uso elevado de la 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 la CPU puede producirse de muchas maneras, pero se debe principalmente 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 del rendimiento y la confiabilidad. Las aplicaciones o los procesos también se vuelven inestables, lo que puede provocar otros problemas además de unas respuestas lentas.

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

Síntomas

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

Síntoma Description
Hambre 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 kubectl no responda.

Lista de comprobación de 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: identificación de 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 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 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 (millicores) y, a continuación, establezca el ejemplo en Máximo. Use la característica de ordenación en max para ordenar los nodos por Max%. Los nodos con el uso de CPU más alto 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 busque 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 CPU, puede asignarlo a las aplicaciones que provocan el pico en el uso de cpu.

Paso 2: Revisar los procedimientos recomendados para evitar un uso elevado de la CPU

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

Procedimiento recomendado Description
Establecer límites adecuados para contenedores Kubernetes permite especificar solicitudes y límites en los recursos de los contenedores. Las solicitudes y límites de recursos representan el número mínimo y máximo de recursos que puede usar un contenedor. Se recomienda establecer las solicitudes y límites adecuados para elegir la clase adecuada de calidad de servicio (QoS) de Kubernetes para cada pod.
Habilite Horizontal Pod Autoscaler (HPA) Establecer los límites adecuados junto con la habilitación de HPA puede ayudar a resolver un uso elevado de la CPU.
Seleccionar 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, acordone los nodos para que no se puedan programar y purgue 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.