Comando Linux iotop

Linux 命令大全Referencia completa de comandos Linux


iotop es una herramienta de monitoreo del sistema Linux similar al comando top, pero se centra en mostrar el uso de I/O de disco. Puede monitorear en tiempo real las actividades de lectura y escritura en disco de cada proceso en el sistema, ayudando a los administradores del sistema a identificar procesos intensivos en I/O.

A diferencia de herramientas como iostat, iotop proporciona monitoreo de I/O basado en procesos, pudiendo precisar la velocidad de lectura y escritura y la cantidad acumulada de I/O de cada proceso.


Instalar iotop

La mayoría de las distribuciones de Linux no incluyen iotop por defecto; es necesario instalarlo manualmente:

Ejemplos

# Sistemas Debian/Ubuntu
sudo apt-get install iotop

# Sistemas RHEL/CentOS
sudo yum install iotop

# Sistemas Fedora
sudo dnf install iotop

# Arch Linux
sudo pacman -S iotop

Sintaxis básica

El formato básico del comando iotop es el siguiente:

sudo iotop [选项]

Nota: iotop requiere permisos de root para ejecutarse, ya que necesita acceder a las estadísticas de I/O del kernel.


Opciones y parámetros comunes

Opción Descripción
-oo--only Mostrar solo procesos que realmente realizan operaciones de I/O
-bo--batch Modo no interactivo, adecuado para usar en scripts
-n NUM Número de iteraciones en modo no interactivo
-d SEC Establecer el intervalo de actualización (segundos)
-p PID Monitorear solo el proceso con el PID especificado
-u USER Monitorear solo los procesos de un usuario especificado
-Po--processes Mostrar solo procesos, no subprocesos
-ao--accumulated Mostrar I/O acumulado en lugar de ancho de banda
-ko--kilobytes Usar KB/s en lugar de B/s como unidad
-to--time Añadir marca de tiempo a la salida
-qo--quiet Reducir la información de cabecera (se habilita automáticamente en modo no interactivo)

Atajos de teclado en modo interactivo

En modo interactivo, iotop admite los siguientes atajos de teclado:

Atajo Función
Flechas izquierda/derecha Cambiar el campo de ordenación
r Orden inverso
o Mostrar solo procesos I/O activos (equivalente a la opción -o)
p Alternar modo de visualización de procesos/subprocesos
a Alternar modo de visualización acumulado/tiempo real
q Salir de iotop
i Cambiar el filtro de prioridad (mostrar solo procesos con mayor prioridad)
Cualquier tecla Forzar actualización de la pantalla

Explicación de los campos de salida

La salida de iotop contiene varios campos; el significado de cada campo es el siguiente:

  1. TID/PID: ID de subproceso/ID de proceso
  2. PRIO: Prioridad de I/O (valor ionice de Linux)
  3. USER: Propietario del proceso
  4. DISK READ: Velocidad de lectura de disco
  5. DISK WRITE: Velocidad de escritura de disco
  6. SWAPIN: Porcentaje de uso de espacio de intercambio
  7. IO>: Porcentaje de uso de I/O
  8. COMMAND: Nombre del proceso

Ejemplos de uso

Ejemplo 1: Monitoreo básico

sudo iotop

Esto inicia una interfaz interactiva que muestra la actividad de I/O de todos los procesos, ordenados por cantidad de uso de I/O.

Ejemplo 2: Mostrar solo procesos I/O activos

sudo iotop -o

O después de ejecutar iotop, presioneola tecla correspondiente para mostrar solo los procesos que actualmente realizan operaciones de I/O.

Ejemplo 3: Monitorear procesos de un usuario específico

sudo iotop -u apache

Monitorear solo la actividad de I/O de los procesos del usuario apache.

Ejemplo 4: Salida en modo no interactivo

sudo iotop -b -n 3 -d 2

Se ejecuta en modo no interactivo, se actualiza cada 2 segundos y sale después de mostrar los resultados 3 veces.

Ejemplo 5: Monitorear un proceso específico

sudo iotop -p 1234

Monitorear solo la actividad de I/O del proceso con PID 1234.


Escenarios de aplicación práctica

Escenario 1: Identificar las causas de la lentitud del sistema

Cuando el sistema responde lentamente, ejecute:

sudo iotop -o

Puede identificar rápidamente qué procesos están leyendo y escribiendo en disco en grandes cantidades, provocando un cuello de botella de I/O en el sistema.

Escenario 2: Monitorear el rendimiento de la base de datos

Para servidores de bases de datos como MySQL:

sudo iotop -u mysql -o

Monitoree específicamente la actividad de I/O del usuario mysql y analice la carga de disco de la base de datos.

Escenario 3: Registrar el estado de I/O periódicamente

sudo iotop -b -t -n 5 -d 10 > iotop_log.txt

Registrar el estado de I/O cada 10 segundos, 5 veces en total, y guardar los resultados en un archivo para su posterior análisis.


Consideraciones

  1. iotop requiere que el kernel admita la función de contabilidad de I/O, que generalmente está habilitada en kernels de Linux más recientes.
  2. En algunos entornos de virtualización, iotop puede no informar con precisión las estadísticas de I/O.
  3. La actualización frecuente (por ejemplo, con intervalos menores a 1 segundo) puede afectar el rendimiento del sistema.
  4. Las estadísticas de I/O acumulado (opción -a) se restablecen después de reiniciar el sistema.
  5. Para dispositivos SSD, un alto tiempo de espera de I/O puede indicar que el dispositivo ha alcanzado su límite de rendimiento.

Herramientas alternativas

Si iotop no está disponible, se pueden considerar las siguientes alternativas:

  1. dstat: Herramienta integral de monitoreo de rendimiento, incluye estadísticas de I/O de disco
  2. atop: Herramienta avanzada de monitoreo del sistema, incluye estadísticas de I/O a nivel de proceso
  3. nmon: Herramienta de monitoreo de rendimiento para AIX/Linux
  4. pidstat: Parte del paquete de herramientas sysstat, puede informar I/O de procesos

Resumen

iotop es una herramienta potente para que los administradores de Linux supervisen la actividad de I/O de disco. Mediante el monitoreo de I/O a nivel de procesos, se pueden localizar rápidamente los cuellos de botella de rendimiento. Dominar el uso de iotop permite diagnosticar y resolver eficazmente los problemas de rendimiento del sistema relacionados con el I/O de disco.


Linux 命令大全Referencia completa de comandos Linux

Otras extensiones