Cómo leer y entender la carga de un sistema Linux
En Linux la carga del sistema, es decir, la cantidad de procesos que tienen que entrar a los procesadores para que sean ejecutados, no es muy intuitiva y se hace un poco complicado de entender. El formato normal consiste en 3 valores numéricos con decimales que se asemejan a esto:
Carga de sistema Linux: 0.01 0.75 1.14
Si quieres conocer más sobre cómo funciona Linux y quieres saber cómo instalar tu propia distribución de Debian, puedes acceder de forma gratuita a mi curso básico de Linux.
Índice de contenidos
Cómo ver la carga del sistema de Linux
Para entender la carga de tu equipo Linux tienes varias opciones distintas, pero los comandos más sencillos que te van a dar esa información son:
Comando uptime
Con este comando conseguimos la información del tiempo que lleva iniciado el equipo.
root@aprendolinux:~# uptime
00:02:01 up 1:13, 1 user, load average: 0,23, 0,05, 0,02
Comando w
Con este comando obtenemos a todas las personas que están conectadas en el equipo, ya sea de forma remota o en local… pero además podemos obtener también la información de la carga del equipo.
root@aprendolinux:~# w
00:02:49 up 1:13, 1 user, load average: 0,88, 0,26, 0,09
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
alumno pts/0 10.0.2.2 22:49 0.00s 0.31s 0.07s sshd:
Comando top
El comando top ofrece información en tiempo real de los procesos que están ejecutándose en el equipo. Además puedes ver la cantidad de memoria y CPU que están utilizando estos procesos.
¿Qué significan los tres valores de carga del sistema Linux?
Pues bien, para empezar te explicaré la información que te está dando cada uno de los valores, y a continuación te diré qué significan esos simpáticos numeritos.
El primer valor es la media de procesos que han entrado a ejecutarse en cualquiera de las CPUs en el último minuto.
El segundo valor, es la misma media de procesos que se han ejecutado en las CPUs de tu equipo en los últimos 5 minutos.
Por último el tercer valor, que es también la media de procesos que han entrado a las CPUs de tu equipo en los últimos 15 minutos.
Y a lo mejor ahora te preguntas ¿media? ¿qué media?
¿Qué significa cada valor de la carga del sistema de Linux?
Para explicar esto vamos a hacer una analogía o similitud con una situación de la vida real. Ponte en la situación en la que estás en un restaurante y en cada mesa (1, 2, 4, 8..) hay una persona gorda que está deseando que le lleven algún plato comida. Esta persona haría las veces de CPU, y ya deberías saber que en tu equipo puedes tener 1, 2, 4, etc… Pues bien, los platos de comida podrían hacer las veces de tareas o procesos que tiene que ejecutar el procesador.
Si en ese restaurante por ejemplo solo hay un comensal (1 CPU) y el camarero le trae amablemente un aperitivo (1 proceso), es la situación perfecta, en ese instante el valor de la carga de CPU sería de 1 ya que es el proceso que ha entrado y va directo al comensal. La carga de esa CPU es de 100% hasta que se termine el aperitivo, y se vuelve a quedar a la espera. La media de carga al cabo de un minuto será el tiempo que ese proceso ha estado consumiendo de CPU para terminar de ejecutarse…
Para explicarlo un poco mejor, si el hombre se ha comido el aperitivo en 12 segundos y el resto del tiempo ha estado esperando a otro plato, la media de tiempo que ha estado comiendo en un minuto sería algo así:
12 segundos cargado / 60 segundos = 0.2
Cuándo está sobrecargado un sistema Linux
En este momento vas a entender claramente la carga de un sistema Linux.
Ahora ponte en una situación que seguro que te ha pasado alguna vez, están en un restaurante y de pronto le traen a ese comensal a la vez dos primeros platos y un segundo plato (3 procesos del tirón). La carga en ese instante será de 3, pero el comensal sólo puede comer de uno en uno… puede dar bocados de este y del otro plato, pero no puede comer de los 3 platos a la vez y tardará bastante en comérselos. En ese momento podríamos decir que la CPU está sobrecargada un 300%.
Esta situación puede producirse en un momento determinado, pero según como sean de grandes y pesados esos procesos con los que la CPU tiene que lidiar, podría provocar que el sistema este sobrecargado durante más tiempo. Eso haría que los valores que obtendríamos en las medias serían altos y por tanto podríamos estar ante un problema en el sistema.
Otra historia sería si la situación fuera la misma que te he contado, pero en vez de 1 hubiera 8 comensales (8 procesadores o cores distintos). Entonces esos tres platos serían fácilmente asumibles por los comensales y pese a que el valor de las medias que te he comentado antes fueran de 3, cuando hay muchos procesadores, 8 en nuestro ejemplo, el sistema podría asumir fácilmente esa carga ya que sería de solo un 37,5%.
Por tanto, para finalizar quiero que te quede claro que para saber si un sistema está sobrecargado no vale solo con saber los valores de la carga, sino que es absolutamente necesario saber el número de procesadores que tiene tu máquina.
Para obtener esa cantidad, puedes lanzar los siguientes comandos:
root@cursoansible:~# cat /proc/cpuinfo
processor : 0
....
processor : 1
....
root@cursoansible:~# lscpu
Arquitectura: x86_64
modo(s) de operación de las CPUs: 32-bit, 64-bit
Orden de los bytes: Little Endian
Tamaños de las direcciones: 39 bits physical, 48 bits virtual
CPU(s): 2
...