martes, 11 de febrero de 2014

Interpretar la salida de load average

Los valores de "load average", o de carga media del sistema, nos los tropezamos continuamente en el día a día en el terminal de Linux. Un ejemplo de ello es el resumen del sistema que se muestra al acceder vía SSH:

Welcome to Ubuntu!
 * Documentation:  https://help.ubuntu.com/

  System information as of Tue Feb 11 21:20:14 CET 2014

  System load:  0.0               Processes:           100
  Usage of /:   52.9% of 3.71GB   Users logged in:     0
  Memory usage: 27%               IP address for eth0: 192.168.1.1
  Swap usage:   3%

  Graph this data and manage this system at https://landscape.canonical.com/

O con el comando uptime:

 21:20:14 up 220 days,  5:43,  1 user,  load average: 0.00, 0.03, 0.09

O con el comando top:

top - 20:27:40 up 220 days,  5:43,  1 user,  load average: 0.00, 0.03, 0.09
Tasks: 108 total,   1 running, 107 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.4%us,  1.7%sy,  0.7%ni, 97.0%id,  0.2%wa,  0.1%hi,  0.1%si,  0.0%st
Mem:    120920k total,    81356k used,    39564k free,    16740k buffers
Swap:   238584k total,     9412k used,   229172k free,    29316k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    1 root      20   0  2656  596  312 S  0.0  0.5  31:31.18 init
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.02 kthreadd
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0

Sin embargo, no todo el mundo entiende qué representan estos valores.

Básicamente representan la carga media del sistema en el último minuto, los últimos 5 minutos y los últimos 15 minutos. Un 100% de carga del sistema lo representaría el valor obtenido por:

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

Es decir, si tenemos un procesador con 2 núcleos, un valor de 2.0 representaría una carga del 100% del sistema.

Os recomiendo la lectura de este artículo, que explica muy bien y de manera bastante gráfica el concepto de carga del sistema.