Cómo monitorizar el uso de CPU y RAM en Linux (top, htop, free)
¿Por qué es importante monitorizar los recursos de tu servidor?
Cuando administras un servidor Linux, ya sea para alojar una web, una aplicación o un servicio, es fundamental saber qué está pasando "bajo el capó". Monitorizar el uso de la CPU y la RAM no es solo cosa de administradores de sistemas expertos; es una práctica esencial para cualquier persona que quiera asegurarse de que su sitio web carga rápido y sin interrupciones.
Piensa en tu servidor como en un coche. Si no miras el indicador de combustible o de temperatura, te arriesgas a quedarte tirado en la carretera. De igual manera, si no monitorizas la CPU y la RAM de tu servidor, te arriesgas a que la web se vuelva lenta, se bloquee o incluso se caiga. Conocer estas métricas te permite detectar problemas antes de que afecten a tus visitantes, planificar actualizaciones de hardware o software, y optimizar el rendimiento de tus aplicaciones.
En este artÃculo, te voy a enseñar de forma clara y sencilla cómo utilizar tres herramientas de lÃnea de comandos que son tus mejores aliadas: top, htop y free. No necesitas ser un genio de la informática para sacarles partido; solo necesitas seguir estos pasos y entender algunos conceptos básicos. A lo largo de la guÃa, verás cómo monitorizar CPU Linux y monitorizar RAM se convierte en una tarea rutinaria y muy gratificante.
Herramientas previas: Conectando a tu servidor
Antes de empezar, necesitas tener acceso a la terminal de tu servidor. Esto se hace normalmente mediante SSH (Secure Shell). Si estás usando un panel de control como Syspanel (cuyo acceso es a través del puerto 2106), es probable que también tengas una opción de "Terminal" integrada en la interfaz web. Sin embargo, para un control total, te recomiendo usar un cliente SSH desde tu ordenador (como PuTTY en Windows o la terminal nativa en macOS/Linux).
Una vez conectado, verás un prompt que termina con $ o #. Ese es tu punto de partida. No tengas miedo de escribir comandos; todos hemos empezado desde cero.
El comando top: Tu primer vistazo en tiempo real
El comando top es la herramienta clásica y viene instalada por defecto en prácticamente todas las distribuciones de Linux. Es como el "monitor de actividad" de tu servidor. Al ejecutarlo, verás una pantalla que se actualiza cada pocos segundos con muchÃsima información. No te agobies; vamos a desglosarla.
Cómo usar top
Simplemente escribe top en tu terminal y pulsa Enter. Verás algo como esto (simplificado):
top - 10:30:01 up 1 day, 2:15, 1 user, load average: 0.50, 0.60, 0.70
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.0 us, 1.0 sy, 0.0 ni, 94.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 2048.0 total, 1024.0 free, 512.0 used, 512.0 buff/cache
MiB Swap: 1024.0 total, 1024.0 free, 0.0 used. 1536.0 avail Mem
Aquà tienes lo más importante:
- La primera lÃnea: Muestra la hora actual, el tiempo que lleva el servidor encendido y la "load average" (promedio de carga). Esta es una de las métricas más importantes. Son tres números que representan la carga del sistema en el último 1, 5 y 15 minutos. Un valor de 1.00 en un servidor de un solo núcleo significa que está al 100% de su capacidad. Si el número es mayor que el número de núcleos de tu CPU, tu servidor está sobrecargado.
%Cpu(s): Esta lÃnea es clave para monitorizar CPU Linux. Desglosa el uso de la CPU en porcentajes. Los más importantes sonus(usuario, tus aplicaciones),sy(sistema, el kernel),id(idle, es decir, tiempo libre) ywa(I/O wait, esperando a que el disco duro responda). Siwaes alto, tu disco es el cuello de botella, no la CPU.MiB MemyMiB Swap: Estas lÃneas son para monitorizar RAM.totales la memoria fÃsica total.freees la memoria completamente sin usar.usedes la memoria usada por tus procesos.buff/cachees memoria que el sistema usa para acelerar el acceso a discos, pero que puede liberarse si una aplicación la necesita.avail Memes la memoria disponible para nuevas aplicaciones (lo que de verdad te interesa).
Atajos de teclado en top
Mientras top está corriendo, puedes usar algunas teclas para interactuar:
P: Ordena los procesos por uso de CPU (el más alto primero). Es la vista por defecto.M: Ordena los procesos por uso de memoria (RAM). Muy útil para detectar procesos que consumen demasiada RAM.k: Te permite matar (terminar) un proceso. Te pedirá el PID (identificador del proceso). ¡Úsalo con cuidado!q: Sale detopy vuelve a la terminal.
Limitaciones de top
top es potente, pero su interfaz es un poco crÃptica y no es muy intuitiva visualmente. Es por eso que muchos administradores prefieren usar htop, que es una versión más amigable y colorida.
htop: La versión moderna y visual
htop es como top pero con esteroides. Es una herramienta de terceros que probablemente tendrás que instalar, pero que merece muchÃsimo la pena. Es mucho más fácil de leer, permite desplazarse con el ratón y tiene una interfaz más clara.
Instalación de htop
Para instalarlo, necesitas ser usuario root o tener permisos de sudo. Los comandos varÃan según tu distribución:
- Debian/Ubuntu:
sudo apt update && sudo apt install htop - CentOS/RHEL/Fedora:
sudo yum install htop(osudo dnf install htopen versiones más nuevas)
Una vez instalado, ejecuta htop en tu terminal. Verás una pantalla dividida en varias secciones.
Entendiendo la interfaz de htop
- Parte superior (barras de colores): A diferencia de
top, aquà ves barras de progreso para cada núcleo de tu CPU. Cada barra tiene dos colores: un color (normalmente azul o verde) que representa los procesos de usuario y otro color (rojo) que representa los procesos del sistema. Debajo, verás barras para la memoria (RAM) y el swap. La barra de memoria tiene varios colores que indican memoria usada, buffers y caché. - Lista de procesos: Justo debajo, tienes una lista de todos los procesos. Puedes ordenarla haciendo clic en las columnas (por ejemplo, en
CPU%oMEM%). También puedes usar las teclas de flecha para seleccionar un proceso y la teclaF9para matarlo (terminarlo). - Pie de página: En la parte inferior, hay una serie de atajos de teclado (F1 a F10) que te permiten hacer acciones como buscar procesos, filtrar, ordenar, etc.
Comandos útiles dentro de htop
F5: Muestra los procesos en forma de árbol, viendo qué proceso es padre de cuál. Útil para entender la jerarquÃa.F6: Te permite elegir por qué columna ordenar los procesos.F4: Filtra los procesos por nombre (por ejemplo, escribenginxpara ver solo esos procesos).F9: Mata el proceso seleccionado. Pide confirmación.
htop es, sin duda, la herramienta favorita de muchos para monitorizar CPU Linux y ver de un vistazo el estado del servidor. Su interfaz visual hace que sea mucho más fácil detectar picos de uso o procesos anómalos.
free: El especialista en memoria RAM
Si solo te interesa saber cuánta memoria RAM tienes y cómo se está usando, free es tu comando. Es rápido, simple y directo. No te da detalles por proceso, pero te da una imagen perfecta de la memoria del sistema.
Cómo usar free
Escribe free -h en tu terminal. La opción -h hace que los números se muestren en un formato legible para humanos (por ejemplo, 512M en lugar de 536870912).
total used free shared buff/cache available
Mem: 2.0G 512M 1.0G 0.0K 512M 1.5G
Swap: 1.0G 0.0B 1.0G
La salida es muy clara:
total: Memoria total instalada.used: Memoria usada por los procesos.free: Memoria completamente libre.shared: Memoria compartida entre procesos (normalmente insignificante).buff/cache: Memoria usada para buffers y caché del kernel. No te asustes si este valor es alto, es normal. El sistema usa memoria libre para cachear archivos y acelerar el acceso a disco. Esta memoria se libera automáticamente cuando una aplicación la necesita.available: Este es el número que debes mirar. Es una estimación de cuánta memoria está disponible para nuevas aplicaciones, teniendo en cuenta que el sistema puede liberar parte de la memoria de caché si es necesario. Siavailablees muy bajo, tu servidor tiene un problema de memoria.
¿Cuándo debo preocuparme por la RAM?
La regla general es que si available es consistentemente bajo (por ejemplo, menos del 10% del total) y el uso de Swap está creciendo, tu servidor está quedándose sin memoria. El swap es espacio en el disco duro que se usa como memoria de respaldo, pero es muchÃsimo más lento que la RAM. Si el sistema está usando swap de forma intensiva, el rendimiento se degrada notablemente.
[WARNING] Un uso elevado de Swap es una señal de alarma. Significa que tu servidor está "estrujando" la memoria y está utilizando el disco como último recurso. Esto ralentizará todas tus aplicaciones. Considera añadir más RAM al servidor o optimizar los procesos que consumen demasiada memoria.
Interpretando los datos: un caso práctico
Imagina que estás usando top y ves que la carga promedio es de 5.00 en un servidor con 2 núcleos. Eso significa que hay una cola de procesos esperando a ser ejecutados. Tu servidor está sobrecargado. Si además ves en %Cpu(s) que el valor wa es alto (por ejemplo, 30%), el problema no es la CPU en sÃ, sino que los procesos están esperando a que el disco duro les dé los datos. Esto es común en servidores con discos duros mecánicos (HDD) en lugar de SSD.
Ahora, si usas htop y ves que un proceso llamado php-fpm está usando el 80% de la CPU, sabes exactamente qué aplicación está causando el problema. Puedes investigar si hay un error en el código, si necesita más recursos o si tienes demasiados procesos de PHP corriendo a la vez.
Por otro lado, si free -h te muestra que available es de 100M en un sistema de 2G, y ves que Swap está en 500M, es un claro indicio de que tu aplicación tiene una fuga de memoria o que simplemente necesitas más RAM.
[TIP] Para obtener una visión completa, ejecuta
topohtopen una ventana yfree -hen otra. Asà puedes correlacionar el uso de CPU y RAM de los procesos con la memoria total del sistema.
Monitorización proactiva y más allá
Estos comandos son perfectos para una comprobación puntual, pero si quieres llevar un control histórico, te recomiendo configurar una herramienta de monitorización más avanzada (como MobaXterm con su monitor de recursos, o soluciones como Nagios, Zabbix o Prometheus). Sin embargo, dominar top, htop y free te dará una base sólida y te permitirá resolver el 90% de los problemas de rendimiento.
Preguntas frecuentes (FAQ)
-
¿Cuál es la diferencia entre
topyhtop?topviene con el sistema y es más básico.htopes una mejora visual e interactiva que hay que instalar. Ambos muestran los procesos en tiempo real, perohtopes mucho más fácil de usar para principiantes. -
¿Qué significa la "load average"? Es el promedio de procesos en cola de ejecución. Un valor de 1.0 en un sistema de un núcleo significa que está al 100%. Si el valor es mayor que el número de núcleos, el sistema está sobrecargado.
-
¿Por qué
freemuestra que tengo poca RAM libre si hay mucha en "caché"? Porque el sistema usa la memoria libre para cachear archivos y acelerar el sistema. Es un comportamiento normal y deseable. La memoria en caché se libera automáticamente cuando una aplicación la necesita. Debes fijarte en la columnaavailable, no enfree. -
¿Cómo mato un proceso que consume mucha CPU? Primero identifica el PID (número del proceso) con
topohtop. Luego, entoppuedes pulsarky escribir el PID. Enhtop, puedes seleccionar el proceso y pulsarF9. También puedes usar el comandokill -9 PIDdesde la terminal. -
¿Qué es Syspanel y cómo se relaciona con esto? Syspanel es un panel de control de hosting que facilita la gestión del servidor. Su acceso se realiza a través del puerto 2106. Aunque ofrece su propio monitor de recursos, conocer estos comandos de terminal te dará un control más granular y te permitirá diagnosticar problemas que el panel no muestra.
-
¿Qué hago si mi servidor siempre está al lÃmite de CPU o RAM? Revisa qué procesos son los que más consumen con
htop. Si son aplicaciones legÃtimas (como MySQL o PHP), considera optimizar su configuración o aumentar los recursos del servidor (más RAM, más núcleos). Si es un proceso desconocido, podrÃa ser un signo de malware o un script mal configurado.
Conclusión
Aprender a monitorizar CPU Linux y monitorizar RAM es una habilidad esencial para cualquier persona que gestione un servidor. Los comandos top, htop y free son tus herramientas más valiosas para esta tarea. No son difÃciles de usar; solo necesitas práctica y paciencia.
Empieza por ejecutar free -h para ver la memoria, luego htop para ver los procesos. Juega con las teclas y las opciones. Con el tiempo, serás capaz de diagnosticar problemas de rendimiento en cuestión de segundos y tomar medidas correctivas antes de que tus usuarios se quejen. Recuerda que un servidor bien monitorizado es un servidor feliz, y un servidor feliz significa una web rápida y estable para todos. ¡Manos a la obra!
