Cómo funciona la carga de CPU en Linux

Linux informa la carga del servidor mediante un indicador que se presenta como la carga de CPU o CPU Load. Cuanto menor sea este valor, es mejor.

Este valor es la longitud de la cola de ejecución: la cantidad de procesos que están corriendo junto con los encolados (esperando para ejecutarse).

En lugar de valores puntuales se utilizan 3 promedios (average) en el tiempo: el último minuto, los últimos 5 minutos y los últimos 15 minutos.

Los mismos se observan al ejecutar cualquiera de estos 2 comandos: uptime y top, de la siguiente manera:

load average: 0.22, 0.85, 0.96

Por lo general, se recomienda analizar los valores 2 (5 minutos) y 3 (15 minutos) para tomar decisiones, según las siguientes consideraciones.

En un sistema con un procesador que tiene un solo core (núcleo):

  • Revisar la situación (0.70): si el load average se mantiene sobre 0.70 es recomendable investigarlo.
  • Solucionarlo (1.00): si el load average se sostiene sobre 1.00, es necesario resolver el problema de inmediato. De lo contrario, sólo empeorará.
  • Estamos en problemas (5.00): cuando el load average exceda 5.00 de manera sostenida, el servidor se está colgando o respondiendo cada vez con mayor lentitud.

Como pueden imaginarse, estos valores son subjetivos y pueden ajustarse según las necesidades, pero comprendiendo lo que significan. Además, se ven afectados por la cantidad de cores de los procesadores que existan en el servidor.

cantidad total de cores del servidor = suma de los cores de cada procesador

El 100% de utilización se mostrará con una carga = al total de cores del servidor. Si tenemos 2 cores, la carga será 2.0 y para 4 cores, la carga será 4.0

En un sistema con múltiples cores, la carga nunca debería exceder el número de cores disponibles.

 

Ejemplo: considerando que tenemos 4 cores en nuestro sistema, si ejecutamos:

~$ uptime

18:34:30 up 1:43, 10 users, load average: 4.20, 4.24, 4.31

Claramente hemos sobrepasado el primer límite de 2.80 = 4 * 0.70 y como la carga se mantiene consistentemente sobre 4 (cantidad de cores), debemos buscar el problema y solucionarlo con prioridad. Estaríamos en la peor situación si la carga fuera superior a 20.0 = 4 * 5.0

 

Determinar la cantidad de cores

Para obtener el número preciso de cores del sistema podemos ejecutar:

grep 'model name' /proc/cpuinfo | wc -l

 

Basado en:

http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages

Tagged with: , , ,
Publicado en Linux