Clave: en Linux el load average no mide solo uso de CPU. Cuenta los procesos en estado R (ejecutándose o esperando CPU) y también los que están en estado D (espera ininterrumpible, casi siempre esperando I/O). Con load alto y CPU ociosa, lo más probable es que haya muchos procesos bloqueados esperando disco o red.
Primero hay que relativizar el número con la cantidad de núcleos (nproc): 40 en 64 cores no es lo mismo que 40 en 4.
Pasos de diagnóstico: Código: bash
vmstat 1 # columna b (bloqueados) y wa (iowait)
iostat -x 1 # %util y await por disco
ps -eo pid,stat,wchan:32,cmd | awk '$2 ~ /D/'
pidstat -d 1 # qué procesos hacen I/O
dmesg -T | grep -i -E 'hung|blocked|nfs|i/o error'
Causas típicas:
Un disco saturado o degradado, por ejemplo un RAID reconstruyendo o un disco con errores.
Un montaje NFS o CIFS cuyo servidor no responde. Los procesos quedan en D indefinidamente.
Swapping intenso por falta de RAM. Se ve en las columnas si/so de vmstat.
Almacenamiento en la nube con IOPS limitadas o créditos de burst agotados.
Resolución: depende de la causa. Puede ser restaurar el servidor NFS, cambiar el disco o mover carga, agregar RAM, o revisar qué proceso genera el I/O. Los procesos en D no mueren con kill -9 hasta que la operación de I/O termina, así que matar procesos no suele ser la solución.
Errores comunes
Asumir que load alto siempre significa CPU saturada. No comparar el load con la cantidad de núcleos. Intentar resolverlo con kill -9 sobre procesos en estado D sin buscar la causa del I/O.
Redactado con el asistente Underc0de IA. Actualizado el 10/11/2026. ¿Ves un error? Contanos en el foro.