Monitorización de disco: iostat, iotop, df, du
Introducción
El disco es habitualmente el recurso más lento del sistema. Identificar qué proceso está generando más I/O, qué partición está llena o qué directorio ocupa más espacio son tareas cotidianas de administración que requieren herramientas específicas.
iostat — Estadísticas de I/O de dispositivos
Parte del paquete sysstat. Muestra el uso de CPU y las estadísticas de transferencia de cada dispositivo de bloque (discos, particiones).
Instalación:
# apt install sysstat # Debian/Ubuntu
# dnf install sysstat # Fedora/RHEL
Uso básico:
$ iostat # resumen desde el arranque
$ iostat -x # estadísticas extendidas
$ iostat -x 2 5 # 5 muestras cada 2 segundos
$ iostat -d sda # solo el dispositivo sda
Columnas clave de iostat -x:
r/s/w/s→ lecturas / escrituras por segundorkB/s/wkB/s→ KB leídos / escritos por segundoawait→ tiempo medio de espera de operaciones I/O (ms) — valor alto indica saturación-
%util→ porcentaje de tiempo que el dispositivo está ocupado — cerca de 100% indica cuello de botella svctm→ tiempo medio de servicio (ms)
Ejemplo de salida:
Device r/s w/s rkB/s wkB/s await %util
sda 1,23 15,40 48,20 312,80 4,12 12,30
nvme0n1 0,50 8,20 20,00 165,40 0,28 1,80
iotop — Top interactivo de I/O por proceso
Muestra en tiempo real qué procesos están generando más I/O de disco, de forma similar a top
pero para operaciones de disco. Requiere privilegios de root.
Instalación:
# apt install iotop # Debian/Ubuntu
# dnf install iotop # Fedora/RHEL
Uso:
# iotop # modo interactivo
# iotop -o # solo procesos con I/O activo
# iotop -b -n 3 # modo batch, 3 iteraciones (para scripts)
Atajos en modo interactivo:
o→ mostrar solo procesos con I/O activop→ agrupar por proceso (en lugar de por hilo)a→ mostrar I/O acumulado en lugar de tasaq→ salir
df — Espacio en sistemas de ficheros
Muestra el espacio total, usado y disponible de cada sistema de ficheros montado.
Uso:
$ df -h # formato legible
$ df -hT # incluye el tipo de sistema de ficheros
$ df -h /home # solo el filesystem que contiene /home
Salida típica:
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda1 ext4 50G 18G 30G 38% /
/dev/sda2 ext4 200G 120G 72G 63% /home
tmpfs tmpfs 3,9G 1,2M 3,9G 1% /run
Cuando Use% llega al 100% el sistema puede fallar al escribir ficheros. Monitorizar regularmente con
alertas a partir del 80-85% es una buena práctica.
du — Espacio ocupado por directorios
Calcula el espacio en disco usado por un directorio y su contenido. Útil para localizar qué carpeta está consumiendo más espacio.
Uso:
$ du -sh /var/log # tamaño total de /var/log
$ du -h --max-depth=1 / # tamaño de cada subdirectorio de /
$ du -h * | sort -rh | head -10 # los 10 elementos más grandes
Opciones comunes:
-s→ solo el total del directorio (sin listar subdirectorios)-h→ formato legible (KB, MB, GB)--max-depth=N→ limita la profundidad de subdirectorios mostrados--exclude=PATRÓN→ excluir ficheros que coincidan con el patrón
lsblk — Lista de dispositivos de bloque
Muestra todos los discos y particiones del sistema en forma de árbol, con su tamaño y punto de montaje.
Uso:
$ lsblk
$ lsblk -f # incluye sistema de ficheros y UUID
$ lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,FSTYPE
Salida típica:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 49G 0 part /
└─sda2 8:2 0 1G 0 part [SWAP]