iotop - Monitor de E/S de Disco por Proceso
iotop es una utilidad similar a top que muestra uso de E/S de disco por proceso en tiempo real. Donde iostat te dice que un dispositivo está ocupado, iotop te dice qué proceso está haciendo la lectura y escritura, a qué velocidad y con qué prioridad de E/S. Es la forma más rápida de responder “¿qué está golpeando el disco ahora?”. Lee datos de contabilidad del kernel y por lo tanto necesita root.
Installation
| Plataforma | Comando |
|---|
| Debian/Ubuntu | sudo apt install iotop |
| Fedora/RHEL | sudo dnf install iotop |
| Arch Linux | sudo pacman -S iotop |
| Requisito | Kernel con CONFIG_TASK_IO_ACCOUNTING (estándar) |
| Verificar | sudo iotop --version |
Running
| Comando | Descripción |
|---|
sudo iotop | Vista en directo interactiva de todos los procesos |
sudo iotop -o | Solo muestra procesos que realmente están haciendo E/S |
sudo iotop -a | Muestra E/S acumulada (totales, no tasas) |
sudo iotop -P | Muestra procesos (no hilos individuales) |
sudo iotop -u USER | Filtra por usuario |
sudo iotop -d 5 | Refresca cada 5 segundos |
The Display
| Columna | Significado |
|---|
TID/PID | ID de hilo o proceso |
PRIO | Clase de prioridad de programación de E/S |
USER | Propietario del proceso |
DISK READ | Velocidad de lectura actual |
DISK WRITE | Velocidad de escritura actual |
SWAPIN | % de tiempo dedicado al swap in |
IO | % de tiempo esperando E/S |
COMMAND | La línea de comando del proceso |
Dos líneas de encabezado muestran Total y Actual disco lectura/escritura para todo el sistema.
Interactive Keys
| Tecla | Acción |
|---|
o | Alternar --only (ocultar procesos inactivos) |
a | Alternar acumulado vs velocidad |
p | Alternar procesos/hilos |
r | Invertir el orden de clasificación |
← / → | Cambiar la columna de clasificación |
q | Salir |
Batch / Logging Mode
Para scripts y capturar evidencia, ejecuta de forma no interactiva.
# Registra los principales procesos de E/S cada 2s, 10 iteraciones, solo activos
sudo iotop -boPqqq -d 2 -n 10 > iotop.log
| Flag | Efecto |
|---|
-b | Modo batch (no interactivo) |
-o | Solo procesos activos |
-n N | Número de iteraciones |
-q | Silencioso (repite para suprimir encabezados) |
-k | Kilobytes |
Common Workflows
# "¿Qué está escribiendo en disco ahora?" — solo activos, procesos no hilos
sudo iotop -oP
# Atrapa un pico de E/S periódico en el tiempo
sudo iotop -boP -d 1 -n 60 > spikes.log
# Culpa a los procesos de un usuario por carga de disco
sudo iotop -oP -u appuser
I/O Priority (pairs with ionice)
iotop muestra la clase PRIO (ionice); la cambias con ionice.
| Clase ionice | Significado |
|---|
ionice -c 1 | Prioridad de E/S en tiempo real |
ionice -c 2 -n 0..7 | Mejor esfuerzo (predeterminado), nivel 0 = más alto |
ionice -c 3 | Ocioso — solo E/S cuando el disco está libre |
# Deprioritiza la E/S de disco de un trabajo de lote pesado
ionice -c 3 -p $(pgrep -n backup)
| Herramienta | Responde |
|---|
| iotop | Qué proceso está haciendo E/S de disco |
| iostat | Si el dispositivo está saturado |
| pidstat -d | E/S por proceso (scriptable, sysstat) |
| dstat/dool | Vista combinada del sistema |
Flujo de trabajo: iostat muestra que el disco está ocupado → iotop muestra qué proceso → ionice lo deprioritiza.
Resources