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 segundo
  • rkB/s / wkB/s → KB leídos / escritos por segundo
  • await → 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 activo
  • p → agrupar por proceso (en lugar de por hilo)
  • a → mostrar I/O acumulado en lugar de tasa
  • q → 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]
          

Para diagnosticar problemas de disco: usar df -h para ver espacio libre, du -h --max-depth=1 para localizar el directorio culpable, e iostat -x 2 para ver si hay saturación de I/O.

Estadísticas del sistema: sar, dstat, uptime, /proc/stat

Índice de la sección

Índice del curso