Este artículo fue publicado originalmente en go2linux.org el 30 de marzo de 2009. El dominio ya no me pertenece, pero soy el autor original. Lo republico aquí en garron.me con correcciones y mejoras.

Continuando con mi revisión de herramientas de rendimiento, presentaré ahora iotop, una herramienta similar a top que muestra en tiempo real los datos que se están escribiendo y leyendo del disco, así como la velocidad promedio de esas operaciones de E/S.

Si administras servidores, necesitas saber qué procesos están leyendo y escribiendo en el disco para poder mejorar el rendimiento.

Instalación

iotop está disponible en los repositorios de todas las distribuciones principales:

# Debian / Ubuntu
sudo apt install iotop

# Fedora / RHEL / CentOS
sudo dnf install iotop

# Arch Linux
sudo pacman -S iotop

Uso

iotop [OPCIONES]

Las principales opciones son:

-o, --only Muestra solo los procesos o hilos que efectivamente están realizando E/S, en lugar de mostrar todos los procesos. Se puede activar y desactivar de forma interactiva presionando o.

-d SEG, --delay=SEG Establece el intervalo entre iteraciones en segundos (el valor por defecto es 1). Acepta valores no enteros como 1.1.

-b, --batch Modo no interactivo. Útil para registrar el uso de E/S a lo largo del tiempo.

Me gusta usarlo con el modificador -o para ver solo los procesos que realmente están escribiendo o leyendo del disco. Combinándolo con -b se obtiene una salida ideal para registrar datos a lo largo del tiempo:

iotop -o -b

Ejemplo de salida:

  PID USER      DISK READ  DISK WRITE   SWAPIN    IO    COMMAND
 2894 ggarron        0 B/s   19.26 K/s  0.00 %  0.00 % firefox
Total DISK READ: 0 B/s | Total DISK WRITE: 211.87 K/s
  PID USER      DISK READ  DISK WRITE   SWAPIN    IO    COMMAND
  571 root           0 B/s  211.87 K/s  0.00 %  2.01 % [kjournald]
Total DISK READ: 0 B/s | Total DISK WRITE: 0 B/s