Promedios de carga en Ubuntu

Muchas veces revisas tu servidor Ubuntu y ves promedios de carga altos.

La primera cifra corresponde a la media de 1 minuto, la segunda a la media de 5 minutos y la tercera a la media de 15 minutos.

~/backup# tiempo de actividad
11:09:31 arriba 40 días, 17:38, 2 usuarios, carga media: 1.01, 0.66, 0.47
~/backup# cat /proc/loadavg
0.40 0.54 0.44 1/255 30135

Algunas interpretaciones:

  • Si los promedios son 0,0, entonces su sistema está inactivo.
  • Si la media de 1 minuto es superior a las medias de 5 ó 15 minutos, entonces la carga está aumentando.
  • Si la media de 1 minuto es inferior a las medias de 5 ó 15 minutos, la carga está disminuyendo.
  • Si son superiores al número de CPU, puede que tengas un problema de rendimiento (depende).

Lo que significa en Linux o Ubuntu es lo siguiente:

En Linux, los promedios de carga son (o intentan ser) "medias de carga del sistema", para el sistema en su conjunto, mide el número de hilos que están trabajando y esperando para trabajar (CPU, disco, bloqueos ininterrumpidos). Dicho de otro modo, mide el número de hilos que no están completamente inactivos. Ventaja: incluye la demanda de diferentes recursos.

Not the same as other OSes:

On other OSes, load averages are “CPU load averages“, measuring the number of CPU running + CPU runnable threads. Advantage: can be easier to understand and reason about (for CPUs only).

So it is important to know that on Linux it is not only the CPU that makes the load averages to go up.

Some tools recommended to troubleshoot high load averages:

  • per-CPU utilization: eg, using mpstat -P ALL 1
  • per-process CPU utilization: eg, toppidstat 1, etc.
  • per-thread run queue (scheduler) latency: eg, in /proc/PID/schedstats, delaystats, perf sched
  • CPU run queue latency: eg, in /proc/schedstat, perf sched, my runqlat bcc tool.
  • CPU run queue length: eg, using vmstat 1 and the ‘r’ column, or my runqlen bcc tool.

Here is the bcc tool mentioned.

This info was taken from http://www.brendangregg.com/blog/2017-08-08/linux-load-averages.html

You can also use this command to debug

ps -e v

Which has these states

state The state is given by a sequence of characters, for example, "RWNA". The first character indicates the run state of the process:
D Marks a process in disk (or other short term, uninterruptible) wait.
I Marks a process that is idle (sleeping for longer than about 20 seconds).
L Marks a process that is waiting to acquire a lock.
R Marks a runnable process.
S Marks a process that is sleeping for less than about 20 seconds.
T Marks a stopped process.
W Marks an idle interrupt thread.
Z Marks a dead process (a "zombie").

Check for R and D processes.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *