Comando Linux iostat
Manual completo de comandos de Linux
1. Resumen del comando iostat
iostat (Input/Output Statistics) es una potente herramienta de monitoreo de rendimiento en sistemas Linux, que forma parte del paquete de herramientas sysstat. Se utiliza principalmente para monitorear la actividad de E/S de disco y el uso de CPU del sistema.
1.1 Funciones básicas
- Monitorear la velocidad de lectura/escritura de E/S de disco del sistema
- Ver la utilización de la CPU
- Estadísticas de carga de dispositivos
- Identificar cuellos de botella de rendimiento de E/S
1.2 Escenarios de aplicación típicos
- Ajuste del rendimiento del servidor
- Análisis de rendimiento de dispositivos de almacenamiento
- Solución de problemas de cuellos de botella del sistema
- Planificación de capacidad
2. Instalación y uso básico
2.1 Métodos de instalación
La mayoría de las distribuciones de Linux no incluyen iostat por defecto; es necesario instalar primero el paquete sysstat:
Ejemplo
sudo apt-get install sysstat
# CentOS/RHEL
sudo yum install sysstat
# Fedora
sudo dnf install sysstat
2.2 Formato básico del comando
Ejemplo
Ejemplo sencillo
Ejemplo
iostat
# Se actualiza cada 2 segundos, se muestra 5 veces en total
iostat 2 5
3. Explicación detallada de las opciones del comando
3.1 Opciones comunes
| Opciones | Descripción |
|---|---|
| -c | Mostrar solo el uso de CPU |
| -d | Mostrar solo el uso de disco |
| -h | Mostrar en formato legible para humanos (p. ej., KB, MB, GB) |
| -k | Mostrar datos en KB |
| -m | Mostrar datos en MB |
| -N | Mostrar nombres de mapeo de dispositivos |
| -p | Mostrar estadísticas del dispositivo o partición especificados |
| -t | Mostrar marca de tiempo |
| -x | Mostrar estadísticas extendidas |
| -y | Omitir la primera estadística (generalmente se usa junto con el intervalo de tiempo) |
3.2 Opciones avanzadas
| Opciones | Descripción |
|---|---|
| -z | Omitir la salida de dispositivos con actividad cero |
| -j ID | Mostrar nombres persistentes de los dispositivos especificados |
| --dec={0|1|2} | Especificar el número de decimales |
4. Interpretación de la salida
4.1 Sección de estadísticas de CPU
avg-cpu: %user %nice %system %iowait %steal %idle
5.32 0.00 1.06 0.25 0.00 93.37
- %user%user: uso de CPU a nivel de usuario (aplicaciones)
- %nice%nice: uso de CPU de procesos con prioridad ajustada
- %system%system: uso de CPU a nivel de sistema (kernel)
- %iowait%iowait: porcentaje de tiempo que la CPU espera a que se completen las operaciones de E/S
- %steal%steal: tiempo "robado" en entornos virtualizados
- %idle%idle: porcentaje de tiempo de CPU inactiva
4.2 Sección de estadísticas de disco (básica)
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 1.02 12.34 5.67 1234567 567890
- tpstps: transferencias por segundo
- kB_read/skB_read/s: cantidad de datos leídos por segundo (KB)
- kB_wrtn/skB_wrtn/s: cantidad de datos escritos por segundo (KB)
- kB_readkB_read: cantidad total de datos leídos (KB)
- kB_wrtnkB_wrtn: cantidad total de datos escritos (KB)
4.3 Información estadística extendida (opción -x)
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 0.00 0.50 1.00 0.50 12.00 4.00 21.33 0.02 10.00 8.00 14.00 6.00 0.90
- rrqm/srrqm/s: número de solicitudes de lectura combinadas por segundo
- wrqm/swrqm/s: número de solicitudes de escritura combinadas por segundo
- r/sr/s: operaciones de E/S de lectura completadas por segundo
- w/sw/s: operaciones de E/S de escritura completadas por segundo
- rkB/srkB/s: KB leídos por segundo
- wkB/swkB/s: KB escritos por segundo
- avgrq-szavgrq-sz: tamaño medio de datos por operación de E/S (sectores)
- avgqu-szavgqu-sz: longitud media de la cola de E/S
- awaitawait: tiempo de espera medio por operación de E/S (milisegundos)
- r_awaitr_await: tiempo de espera medio de las operaciones de lectura (milisegundos)
- w_awaitw_await: tiempo de espera medio de las operaciones de escritura (milisegundos)
- svctmsvctm: tiempo de servicio medio por operación de E/S (milisegundos)
- %util%util: porcentaje de utilización del ancho de banda del dispositivo
5. Análisis de ejemplos prácticos
5.1 Monitorear un disco específico
Ejemplo
iostat -d -x sda 2 3
5.2 Monitoreo integral de CPU y disco
Ejemplo
iostat -c -d -x -t 5
5.3 Mostrar en MB
Ejemplo
iostat -d -m
5.4 Monitorear todas las particiones
Ejemplo
iostat -p ALL
6. Interpretación de métricas de rendimiento y sugerencias de optimización
6.1 Métricas clave de rendimiento
%util%util: utilización del dispositivo
80% significa que el dispositivo está cerca de la saturación
- 100% sostenido significa que el dispositivo se ha convertido en un cuello de botella
awaitawait: tiempo de espera de E/S
- En condiciones normales debe ser < 10 ms
50 ms indica que puede haber problemas de rendimiento
avgqu-szavgqu-sz: longitud de cola
1 indica que el dispositivo puede estar sobrecargado
6.2 Diagnóstico de problemas comunes
Problema 1: %util alto pero rendimiento bajo
- Causa posible: demasiadas E/S aleatorias
- Solución: optimizar el patrón de E/S de la aplicación, considerar el uso de SSD
Problema 2: await alto pero %util bajo
- Causa posible: cuello de botella en el controlador o el bus
- Solución: revisar la tarjeta HBA o el controlador de almacenamiento
Problema 3: rkB/s o wkB/s anormalmente altos
- Causa posible: la aplicación realiza muchas lecturas/escrituras
- Solución: optimizar la aplicación o aumentar la caché
7. Uso en combinación con otras herramientas
7.1 Combinar con vmstat
Ejemplo
vmstat 1 5 & iostat -x 1 5
7.2 Combinar con sar
Ejemplo
sar -d
7.3 Combinar con iotop
Ejemplo
iotop
8. Resumen y mejores prácticas
8.1 Recomendaciones de uso
- Al monitorear entornos de producción, se recomienda usar la opción -x para obtener datos detallados
- Para monitoreo a largo plazo, se debe combinar con sar para recopilar datos históricos
- Al analizar problemas de rendimiento, se deben tener en cuenta tanto los datos de CPU como los de E/S
- Comparar estadísticas de diferentes períodos de tiempo es más significativo
8.2 Combinaciones de comandos comunes
Ejemplo
iostat -c -d -x -t -m 5
# Monitorear solo la información extendida del disco
iostat -d -x 2
# Monitorear una partición específica
iostat -p sda1 -x 1 10
Al dominar el comando iostat, los administradores de sistemas pueden monitorear y analizar eficazmente el rendimiento de E/S de los sistemas Linux, detectar y resolver rápidamente los cuellos de botella de rendimiento relacionados con el almacenamiento.
Otras extensiones