Diagnosticar una alta carga en un VPS
Usando htop, top e iotop-c para encontrar el proceso culpable
Cuando tu VPS comienza a retrasarse – SSH se siente retrasado, los sitios web responden lentamente, o incluso escribir en la terminal parece lento – generalmente significa que uno o más recursos del sistema (CPU, RAM o disco I/O) están siendo llevados al límite. Esta guía te lleva a través de un proceso práctico, paso a paso, para identificar qué está sucediendo y qué proceso es el culpable, utilizando tres herramientas estándar de Linux: htop, top e iotop-c.
Se asume que la audiencia son administradores de sistemas principiantes a intermedios familiarizados con la línea de comandos y conceptos básicos de Linux.
Paso uno: Saber qué significa realmente "alta carga"
Mucha gente ve un "promedio de carga" alto y entra en pánico, pero no todas las cargas altas son malas. Aclarémoslo.
¿Qué es el "promedio de carga"?
El "promedio de carga" te dice cuántos procesos están esperando por la CPU en un momento dado. Se muestra como tres números (para los últimos 1, 5 y 15 minutos).
Ejemplo: uptime
Salida:
17:41:25 up 2 days, 3:45, 1 user, load average: 2.34, 1.89, 1.42
Interpretación:
- 2.34 – carga promedio en el último minuto
- 1.89 – en los últimos 5 minutos
- 1.42 – en los últimos 15 minutos
Ahora, compara esos números con tu conteo de núcleos de CPU. Si tienes 2 núcleos:
- Una carga alrededor de 2.0 significa que ambas CPUs están completamente utilizadas – el sistema está ocupado, pero bien.
- Una carga mucho mayor que 2.0 (como 3 o 4) significa que hay una cola – demasiados procesos están esperando.
Verifica cuántos núcleos tienes:
nproc
Si la carga ≫ número de núcleos durante mucho tiempo, es hora de investigar.
Paso dos: Obtén una visión general rápida con htop
htop es la forma más fácil de visualizar lo que está sucediendo dentro de tu VPS en tiempo real.
Instalar htop
Usa el comando adecuado para tu distribución de Linux para instalar:
sudo apt install htoppara Ubuntu/Debiansudo yum install htoppara CentOS/RHEL
Ejecutarlo
Ejecuta el comando htop. Verás una interfaz colorida como esta:

Entendiendo el diseño
- Barras superiores muestran el uso de CPU, memoria e intercambio en tiempo real.
- Promedio de carga es visible en la esquina superior derecha.
- La lista de procesos muestra qué está ejecutándose y cuánta CPU y RAM usa cada proceso.
Consejos de navegación
- Ordenar por uso de CPU: presiona F6, luego elige "PERCENT_CPU"
- Ordenar por memoria: presiona F6, elige "PERCENT_MEM"
- Vista de árbol (mostrar procesos padre/hijo): presiona F5
- Matar un proceso: resáltalo – presiona F9 – elige señal (por defecto es 15, "terminar")
- Buscar un proceso: presiona F3, escribe parte de su nombre (por ejemplo, "nginx")
Qué buscar
- Procesos con alto % de CPU – estos están consumiendo la mayor parte del tiempo de CPU.
- Procesos con alto % de MEM – estos están consumiendo RAM y pueden estar forzando al sistema a intercambiar.
- Si un proceso sigue apareciendo en la parte superior cada pocos segundos, podría ser un script en bucle o un servicio que se reinicia.
Ejemplo
Ejecuta htop. Si ves algo como:

Está claro que msty-local-studio con PID 6346 está usando más CPU y memoria que todo lo demás. Ahora sabes dónde enfocar tus próximas verificaciones.
Paso Tres: Verificar con top
Mientras que htop es amigable, top está disponible en cada sistema Linux – no se requiere instalación. Es un buen respaldo cuando solo tienes acceso SSH a un entorno mínimo.
Ejecutarlo
Ejecuta el comando top. Verás una interfaz como esta:

Puntos clave
- La línea %Cpu(s) muestra a dónde va el tiempo de CPU:
- us – procesos de usuario
- sy – tareas del sistema/núcleo
- wa – esperando por I/O (disco)
- %wa (espera de I/O) por encima del 10–15% a menudo significa un cuello de botella en el disco.
- El promedio de carga y el resumen de tareas te dicen cuán ocupado está el sistema.
Atajos de teclado útiles
- Shift + P – ordenar por CPU
- Shift + M – ordenar por memoria
- Shift + T – ordenar por tiempo de ejecución del proceso
- 1 – alternar uso de CPU por núcleo
- k – matar un proceso (ingresa PID cuando se te pida)
- q – salir de
top
Cuándo usar top
Usa top cuando:
htopno está instalado (como en un sistema de rescate o contenedor Docker).- Quieres una herramienta ligera que muestre el equilibrio CPU vs. I/O en tiempo real.
Paso Cuatro: Si la CPU y la RAM se ven bien – Verifica el I/O del disco usando iotop-c
A veces todo parece normal – el uso de CPU no es alto, la memoria está bien – pero el sistema se siente congelado. Comandos como ls o cd se cuelgan por segundos, y el promedio de carga sigue siendo alto. Eso es un signo clásico de espera de I/O, donde la CPU está inactiva pero esperando que se completen las operaciones de disco.
Instalar iotop-c
Usa el comando adecuado para tu distribución de Linux para instalar:
sudo apt install iotop-cpara Ubuntu/Debiansudo yum install iotop-cpara CentOS/RHEL
Habilita la monitorización de IO usando el comando:
sudo sysctl kernel.task_delayacct=1
Ejecutarlo
Ejecuta el comando como usuario root: sudo iotop-c. Verás una interfaz como esta:

Interpretación
- La columna IO muestra cuánto tiempo cada proceso está bloqueado esperando por I/O.
- Alto IO (por ejemplo, 90–100%) – ese proceso está esperando mucho en el disco.
- Verifica si estás ejecutando copias de seguridad, importaciones de datos grandes o trabajos de compresión.
Causas comunes de sobrecarga de I/O
- Base de datos (
mysqld,postgres) ejecutando una consulta grande. - Scripts de copia de seguridad (
rsync,tar,dd) copiando archivos masivos. - Archivos de registro creciendo incontrolablemente en
/var/log. - Intercambio mal configurado – si el sistema comienza a intercambiar mucho, satura el disco.
Paso Cinco: Correlaciona lo que encontraste
Ahora que has usado htop, top e iotop-c, es hora de armar el rompecabezas.
| Síntoma | Causa probable | Herramienta para verificar |
|---|---|---|
| Alto uso de CPU | Script con errores, proceso pesado | htop, top |
| Alto uso de memoria | Fuga de memoria, demasiados trabajadores | htop |
| Alta espera de I/O, respuesta lenta | Cuello de botella en el disco, intercambio | iotop-c, top |
| Alta carga pero CPU inactiva | Exhaustión de I/O o memoria | top, iotop-c |
Además, verifica los registros del sistema en busca de advertencias:
journalctl -xe
o:
tail -n 50 /var/log/syslog
Puedes encontrar mensajes sobre errores del núcleo, montajes fallidos o procesos siendo terminados por el OOM (Out Of Memory) killer.
Paso Seis: Toma acción
Una vez que identifiques al culpable, decide qué hacer a continuación.
Reinicia o detén el proceso
sudo systemctl restart <service>
o, si es necesario:
sudo kill -9 <pid>
Libera espacio en disco
Si el uso del disco es alto, usa df -h para determinar qué partición limpiar, o sudo du -sh /var/log/* para determinar qué registros limpiar.
Reduce la carga del proceso
- Limita los trabajos cron para que no se ejecuten al mismo tiempo.
- Ajusta los límites de consulta de la base de datos o el almacenamiento en caché.
- Reduce el conteo de trabajadores en Nginx, Apache o Gunicorn.
Si nada ayuda – actualiza los recursos
Si constantemente alcanzas los límites incluso con cargas de trabajo optimizadas, es hora de agregar más CPU, RAM, o cambiar a un almacenamiento más rápido (por ejemplo, de SSD a NVMe).
Paso Siete: Prevención y Monitoreo Continuo
No deberías tener que iniciar sesión manualmente y verificar la carga cada vez. Puedes configurar monitoreo y alertas con herramientas como: glances, netdata, prometheus, etc.
Comandos de referencia rápida
| Objetivo | Comando |
|---|---|
| Mostrar promedio de carga | uptime |
| Ver carga de CPU/memoria visualmente | htop |
| Vista mínima de procesos | top |
| Monitorear actividad de disco | iotop-c |
| Ver registros | journalctl -xe |
Ejemplo del Mundo Real: El Script de Respaldo Descontrolado
Pongamos todo junto con un escenario real.
Situación
- VPS con 2 núcleos de CPU y almacenamiento SSD
- De repente se siente muy lento – retraso en SSH, páginas web se agotan
uptimemuestra: promedio de carga: 8.5, 7.3, 6.9 – demasiado alto para 2 núcleos.
Investigación
- Ejecuta
htop: el uso de CPU es bajo – solo 10–15%. El uso de memoria está bien. Así que no está limitado por CPU. - Ejecuta
top: %wa = 40% – el sistema está esperando en I/O de disco. - Ejecuta
iotop-c:
Bingo – un script de respaldo comprimiendo un directorio enorme directamente en el disco.
Solución
- Detén o reprograma el respaldo para que se ejecute por la noche.
- Comprime a
/tmp(en memoria) antes de mover al disco. - Usa
ionicepara reducir su prioridad de disco.
Resultado
El rendimiento del VPS vuelve a la normalidad instantáneamente.
Reflexiones Finales
Diagnosticar una alta carga no es magia – se trata de verificar sistemáticamente CPU, memoria y disco uno por uno. Usa tus herramientas como un detective:
- ¿Está la CPU al máximo? –
htop,top - ¿Está la memoria llena o intercambiando? –
htop,top - ¿Está el disco sobrecargado? –
iotop-c - ¿Los registros lo confirman? –
journalctl
Una vez que identifiques el proceso culpable, puedes decidir: ajustarlo, matarlo o programarlo mejor. Con el tiempo, comenzarás a reconocer patrones – un proceso de carga pesada, demasiados trabajos cron, o una aplicación web mal configurada. Ahí es cuando dejas de apagar incendios y comienzas a gestionar como un verdadero administrador de sistemas.