¿Por dónde debería empezar a solucionar problemas de carga promedio alta?

¿Por dónde debería empezar a solucionar problemas de carga promedio alta?

Tengo un clúster de Kubernetes ejecutándose con 4 nodos trabajadores (Ubuntu 20.04 con 4 CPU) y veo un promedio de carga alto en todos ellos. Aquí está el resultado de top en uno de los nodos: arriba

No estoy seguro de si esto es lo esperado, ya que este nodo ejecuta 111 contenedores. ¿Podría haber algo más que esté causando el alto promedio de carga o simplemente se debe a que tengo demasiados contenedores y solo necesito más recursos?

Respuesta1

El promedio de carga es un recuento de programas en ejecución o en espera de ejecución.

La parte superior es agradable, pero solo te da la mitad de la imagen: cosas ejecutándose o esperando ejecutarse en la CPU. La otra mitad son cosas que esperan que se complete la E/S del disco.

Para E/S de disco, atopestá bien, presione dpara mostrar el uso del disco por proceso. (Por lo general, necesitarás ejecutarlo como root para conseguirlo).

Respuesta2

Una regla general típica es que no desea que su carga promedio sea mayor que la cantidad de núcleos en su host. Esa es la situación ideal. Superar eso no siempre es un problema. Según mi experiencia, el promedio de carga por sí solo no siempre es un indicador de un problema. Si tiene una carga elevada, un uso elevado de la CPU del sistema o un iowait elevado, es probable que se encuentre en un mal lugar.

Con Kubernetes, lo que escucho mucho es que es necesario establecer límites de recursos. Si no tiene límites, entonces cada pod tiene acceso completo a un nodo. En mi opinión, dimensionar correctamente las aplicaciones no es sencillo. Especialmente cuando todo el mundo parece intentar lanzar aplicaciones nativas que no son de la nube en k8.

Como sugerencia, podría reducir sus cargas de trabajo, agregar más trabajadores (ampliación horizontal) o agregar más recursos a los nodos (ampliación horizontal), o una combinación de ambas.

información relacionada