Comando Linux iotop
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
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:
- TID/PID: ID de subproceso/ID de proceso
- PRIO: Prioridad de I/O (valor ionice de Linux)
- USER: Propietario del proceso
- DISK READ: Velocidad de lectura de disco
- DISK WRITE: Velocidad de escritura de disco
- SWAPIN: Porcentaje de uso de espacio de intercambio
- IO>: Porcentaje de uso de I/O
- 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
- 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.
- En algunos entornos de virtualización, iotop puede no informar con precisión las estadísticas de I/O.
- La actualización frecuente (por ejemplo, con intervalos menores a 1 segundo) puede afectar el rendimiento del sistema.
- Las estadísticas de I/O acumulado (opción -a) se restablecen después de reiniciar el sistema.
- 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:
- dstat: Herramienta integral de monitoreo de rendimiento, incluye estadísticas de I/O de disco
- atop: Herramienta avanzada de monitoreo del sistema, incluye estadísticas de I/O a nivel de proceso
- nmon: Herramienta de monitoreo de rendimiento para AIX/Linux
- 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.
Otras extensiones