Monitoreo

Cómo monitorear CPU, memoria y disco de un servidor Linux

Aprende a leer load average, memoria, swap y disco en Linux, qué umbrales indican problemas y cómo verlo todo en tiempo real, incluso en el móvil.

Equipo EzServer 8 min de lectura

"El sitio va lento" y "da error 500" casi siempre tienen una causa visible en las cifras del servidor, siempre que alguien las esté mirando. Esta guía explica qué métricas importan, cómo interpretarlas en Linux y qué umbrales indican un problema.

CPU y load average

El comando uptime (o top) muestra tres valores de load average: el promedio de 1, 5 y 15 minutos de procesos ejecutándose o esperando CPU y disco.

$ uptime
 14:02:11 up 32 days,  load average: 3.84, 2.10, 1.75
$ nproc
4

La regla práctica: compara el load con el número de núcleos. En una máquina de 4 núcleos, un load de 3,8 está cerca del límite; 8 significa que hay el doble de trabajo del que la CPU puede atender. Si el load es alto pero el uso de CPU es bajo, el cuello de botella suele ser el disco (revisa iowait en top).

Memoria: "available" es la cifra que importa

$ free -h
              total   used   free   shared  buff/cache  available
Mem:           3.8Gi  1.9Gi  210Mi   45Mi      1.7Gi       1.6Gi
Swap:          2.0Gi  120Mi  1.9Gi

Linux usa la memoria libre como caché de disco, así que un valor free bajo es normal. Fíjate en la columna available. Señales de alerta:

  • available por debajo del 10 % del total de forma sostenida;
  • swap en aumento continuo, lo que ralentiza todo;
  • mensajes del OOM killer (dmesg | grep -i oom) matando MySQL o PHP-FPM.

Disco: la causa n.º 1 de caídas repentinas

$ df -h /
Filesystem  Size  Used Avail Use% Mounted on
/dev/vda1    80G   76G  4.0G  95% /

# ¿qué está ocupando espacio?
$ du -xh / --max-depth=2 2>/dev/null | sort -h | tail -15

Con el disco lleno, las bases de datos dejan de escribir, las sesiones de PHP fallan y el servidor web responde 500. Los culpables habituales: logs sin rotación, backups locales acumulados, cachés de aplicación e imágenes de Docker antiguas. Revisa también los inodos con df -i: millones de archivos pequeños pueden agotarlos aunque quede espacio libre.

Tabla de referencia de umbrales

MétricaSaludableAtenciónCrítico
Load (÷ núcleos)< 0,70,7 – 1,0> 1,0 sostenido
Memoria disponible> 20 %10 – 20 %< 10 % u OOM
Swap usada~0En aumento> 50 %
Disco usado< 75 %75 – 90 %> 90 %

Del comando puntual a la monitorización continua

Los comandos anteriores responden a "cómo está ahora". Para evitar incidentes necesitas el histórico (¿el disco crece un 2 % al día?) y una vista de todos los servidores juntos. Ahí entra la monitorización continua:

  • EzServer recopila CPU, memoria, disco y carga de cada servidor periódicamente, por SSH y sin agentes.
  • Un panel único con todos los servidores y gráficos de evolución.
  • Apps para Android e iOS para revisar la salud de la infraestructura desde cualquier lugar.
  • El Asistente de IA explica la salida de los comandos y sugiere el siguiente paso del diagnóstico.
Checklist rápido cuando se cae el sitio: 1) df -h → 2) free -h → 3) uptime → 4) systemctl --failed → 5) últimos errores en journalctl -p err -n 50.

Preguntas frecuentes

¿Qué load average se considera alto?

Compáralo con el número de núcleos (comando nproc). Un load sostenido por encima del número de núcleos indica una cola de procesos esperando CPU o disco.

¿Por qué Linux muestra casi toda la memoria en uso?

El kernel usa la memoria libre como caché de disco. La cifra que importa es "available" en el comando free -h, que ya tiene en cuenta la caché que puede liberarse.

¿Puedo ver las métricas desde el móvil?

Sí. Las apps de EzServer para Android e iOS muestran CPU, memoria y disco de todos los servidores.

Gestiona todos tus servidores en un solo lugar

Terminal SSH, monitoreo, backups e IA. Conecta tu primer VPS en segundos.

Crear cuenta gratis