El comando Iostat se usa para monitorear la carga del dispositivo de entrada/salida (E/S) del sistema observando el tiempo que los dispositivos están activos en relación con sus tasas de transferencia promedio. El iostat crea informes que se pueden usar para cambiar la configuración del sistema para equilibrar mejor la entrada/salida entre los discos físicos.
Iostat está incluido en sysstat paquete. Iostat está instalado de forma predeterminada en la mayoría de las distribuciones de Linux.
Si no lo tiene, primero debe instalarlo.
En RedHat/CentOS/Fedora
$ yum install sysstat
En Debian/Ubuntu/Linux Mint
$ apt-get install sysstat
Cuando el comando se ejecuta sin argumentos, genera un informe detallado que contiene información desde que se inició el sistema . Puede proporcionar dos parámetros opcionales para cambiar esto:
iostat [option] [interval] [count]
- intervalo el parámetro especifica la duración del tiempo en segundos entre cada informe
- Contar El parámetro le permite especificar la cantidad de informes que se generan antes de que iostat salga.
Cuando el comando se ejecuta por primera vez con estos argumentos, el primer informe contiene información desde que se inició el sistema, mientras que cada informe posterior cubre el período de tiempo desde que se generó el último informe.
$ iostat 2 3
Linux 3.10.0-514.16.1.el7.x86_64 (centos-01) 05/23/2017 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.65 0.00 0.18 0.02 0.00 99.15
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 0.88 4.29 7.07 217829 358600
avg-cpu: %user %nice %system %iowait %steal %idle
1.01 0.00 0.50 0.00 0.00 98.49
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 0.50 0.00 2.01 0 4
avg-cpu: %user %nice %system %iowait %steal %idle
3.00 0.00 0.50 0.00 0.00 96.50
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 1.00 0.00 30.00 0 60
1. Obtener informe y estadística
iostat por defecto sin ninguna opción mostrar informe estadístico compuesto por CPU y dispositivos.
$ iostat
Salida:
Linux 3.10.0-514.16.1.el7.x86_64 (centos-01) 05/22/2017 _x86_64 (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.69 0.00 0.19 0.02 0.04 99.08
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 1.00 3.40 14.08 1552428 6423128
La primera sección contiene el informe de CPU
- %usuario: porcentaje de utilización de la CPU que se produjo durante la ejecución en el nivel de usuario (aplicación)
- %agradable: porcentaje de utilización de la CPU que se produjo durante la ejecución a nivel de usuario con buena prioridad
- %sistema: porcentaje de utilización de la CPU que se produjo durante la ejecución en el nivel del sistema (kernel)
- %ioespera: porcentaje del tiempo que la CPU o las CPU estuvieron inactivas durante el cual el sistema tuvo una solicitud de E/S de disco pendiente
- % robo: porcentaje de tiempo invertido en espera involuntaria por la CPU o las CPU virtuales mientras el hipervisor prestaba servicio a otro procesador virtual
- % inactivo: porcentaje de tiempo que la CPU o las CPU estuvieron inactivas y el sistema no tenía una solicitud de E/S de disco pendiente
La segunda sección contiene el informe de utilización del dispositivo
- Dispositivo: nombre del dispositivo/partición como se indica en /dev directorio
- tps: número de transferencias por segundo que se emitieron al dispositivo. Un tps más alto significa que el procesador está más ocupado
- Blk_read/s: muestra la cantidad de datos leídos del dispositivo expresados en una cantidad de bloques (kilobytes, megabytes) por segundo
- Blk_wrtn/s : cantidad de datos escritos en el dispositivo expresados en una cantidad de bloques (kilobytes, megabytes) por segundo
- Blk_read: muestra el número total de bloques leídos
- Blk_wrtn: mostrar el número total de bloques escritos
iostat usa los siguientes archivos para crear informes:
/proc/stat
contiene estadísticas del sistema./proc/uptime
contiene el tiempo de actividad del sistema./proc/diskstats
contiene estadísticas de discos./sys
contiene estadísticas para dispositivos de bloque./proc/self/mountstats
contiene estadísticas para sistemas de archivos de red./dev/disk
contiene nombres de dispositivos persistentes.
2. Mostrar más información detallada de las estadísticas
El comando Iostat informa sobre la utilización de los dispositivos de E/S. Es posible ampliar el resultado de la estadística para un diagnóstico en profundidad con la opción -x
.
$ iostat -x
Salida:
Linux 3.10.0-514.16.1.el7.x86_64 (centos-01) 05/23/2017 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.69 0.00 0.19 0.02 0.04 99.06
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 0.01 1.10 0.16 0.84 3.37 14.04 34.88 0.00 2.35 1.41 2.53 0.40 0.04
- promedio de CPU: es la información del bloque de la CPU
- Dividir: es información de bloque de dispositivo. Para asegurarse de que está en el buen dispositivo
- % útil :cuánto tiempo estuvo pendiente el dispositivo de almacenamiento (estuvo ocupado).
- svctm :indica qué tan rápido responde su subsistema de E/S a las solicitudes en general cuando está ocupado. En realidad, cuanto menos carga su sistema, mayor es el svctm.
- esperar :indica qué tan rápido pasan las solicitudes. Es solo un promedio.
- avgqu-sz :cuántas solicitudes hay en una cola de solicitudes. Bajo =su sistema no está cargado o tiene E/S serializadas y no puede utilizar el almacenamiento subyacente correctamente. Alto =su pila de software es lo suficientemente escalable para cargar correctamente la E/S subyacente.
- tamaño medio :solo un tamaño de solicitud promedio. puede indicar qué tipo de carga de trabajo ocurre.
- wsec/s &rseg/s :Sectores leídos y escritos por segundo. Divida por 2048 y obtendrá megabytes por segundo.
- r/s &w/s :Solicitudes de lectura y escritura por segundo. Estos números son los que representan las cifras de capacidad de E/S, aunque, por supuesto, dependiendo de cuánta presión reciba el subsistema de E/S subyacente (¡tamaño de la cola!), pueden variar.
- rrqm/s &wrqm/s :cuántas solicitudes se fusionaron por capa de bloque.
3. Mostrar solo la estadística de la CPU
Es posible mostrar información estadística y reporte de nuestra cpu con -c
opción
$ iostat -c
Salida:
Linux 4.4.0-78-generic (shinigami) 05/23/2017 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
12.93 0.08 2.40 3.35 0.00 81.24
4. Mostrar solo el informe del dispositivo
Solo es posible mostrar el estado de utilización del dispositivo con -d
opción. Enumerará información para cada dispositivo conectado.
$ iostat -d
Salida:
Linux 4.4.0-78-generic (shinigami) 05/23/2017 _x86_64_ (4 CPU)
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 17.73 510.80 632.10 5127420 6345037
mmcblk0 0.03 0.63 0.00 6282 0
5. Mostrar estadísticas de E/S extendidas solo para dispositivos
Podemos mostrar estadísticas extendidas de un lado y del otro lado podemos mostrar estadísticas extendidas. Significa que podemos mostrar estadísticas extendidas solo para dispositivos con la opción -xd
.
$ iostat -xd
Salida:
$ iostat -xd
Linux 4.4.0-78-generic (shinigami) 05/23/2017 _x86_64_ (4 CPU)
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.48 25.33 8.43 7.81 417.06 540.42 117.88 1.18 72.83 35.98 112.62 6.18 10.03
mmcblk0 0.30 0.00 0.02 0.00 0.49 0.00 49.47 0.00 3.73 3.73 4.00 2.99 0.01
6. Captura las estadísticas en kilobytes o megabytes
De forma predeterminada, iostat mide el sistema de E/S con unidades de bytes. Para que sea más fácil de leer, podemos convertir iostat para que nos muestre los informes en unidades de kilobytes o megabytes.
Simplemente agregue la opción -k
para crear informes con unidad de kilobytes.
$ iostat -k
Salida:
Linux 4.4.0-78-generic (shinigami) 05/23/2017 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
12.54 0.08 2.37 3.41 0.00 81.61
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 16.18 345.76 504.55 5622164 8204113
mmcblk0 0.02 0.39 0.00 6282 0
La opción -m
para crear informes con unidad de megabytes.
$ iostat -m
Linux 4.4.0-78-generic (shinigami) 05/23/2017 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
12.54 0.08 2.37 3.41 0.00 81.61
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 16.18 0.34 0.49 5490 8012
mmcblk0 0.02 0.00 0.00 6 0
7. Mostrar estadísticas de CPU y dispositivos con retraso
Lo mismo con vmstat, como herramienta estadística, la mejor manera de usarla es con el parámetro de retraso. Con el retraso, podemos ver cuál es la tendencia. Aquí hay algunos ejemplos para ejecutar iostat con retraso.
Ejecute iostat con unidad de kilobytes, intervalo de 2 segundos con informes de 3 veces.
$ iostat -k 2 3
Salida:
Linux 3.10.0-514.16.1.el7.x86_64 (centos-01) 05/23/2017 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.70 0.00 0.19 0.02 0.03 99.05
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 1.00 3.33 14.03 1561788 6572152
avg-cpu: %user %nice %system %iowait %steal %idle
0.50 0.00 0.00 0.00 0.00 99.50
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 0.00 0.00 0.00 0 0
avg-cpu: %user %nice %system %iowait %steal %idle
3.52 0.00 0.50 0.00 0.00 95.98
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 1.51 0.00 12.06 0 24
Para mostrar el informe de solo CPU con intervalo de 2 segundos e informes de 2 veces, escriba:
$ iostat -c 2 2
Linux 3.10.0-514.16.1.el7.x86_64 (centos-01) 05/23/2017 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.71 0.00 0.19 0.02 0.03 99.05
avg-cpu: %user %nice %system %iowait %steal %idle
1.50 0.00 0.00 0.00 0.00 98.50
Para mostrar el informe de dispositivo sda6 y sda7 solo con intervalo de 2 segundos e informes de 2 veces, ejecute:
$ iostat -d sda7 sda6 2 2
Salida:
Linux 4.4.0-78-generic (shinigami) 05/23/2017 _x86_64_ (4 CPU)
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda6 3.40 108.29 130.75 1928577 2328496
sda7 12.19 211.96 305.79 3774804 5445696
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda6 0.00 0.00 0.00 0 0
sda7 1.00 0.00 24.00 0 48
8. Mostrar estadísticas persistentes de nombres de dispositivos
Es posible imprimir el informe por nombre de dispositivo. En lugar del estándar /dev/sda
name, imprimirá el nombre del dispositivo persistente usando la opción -j
y agregando ID
palabra clave (especifique el tipo de nombre persistente).
$ iostat -j ID mmcbkl0 sda6 -x -m 2 2
Salida:
Linux 4.4.0-78-generic (shinigami) 05/23/2017 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
14.33 0.10 2.48 3.26 0.00 79.83
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
ata-ST500LT012-1DG142_S3P4312X-part6
0.19 0.88 2.51 0.82 0.10 0.12 138.36 0.21 61.81 57.12 76.12 10.81 3.60
avg-cpu: %user %nice %system %iowait %steal %idle
19.40 0.00 1.25 0.63 0.00 78.72
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
ata-ST500LT012-1DG142_S3P4312X-part6
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
9. Mostrar estadísticas para bloquear dispositivos
Es posible mostrar directamente información para cada dispositivo de bloque automáticamente. No es necesario indicar el nombre de cada dispositivo. Mostrará estadísticas para los dispositivos de bloque y todas sus particiones que utiliza el sistema. Si se ingresa un nombre de dispositivo en la línea de comando, se muestran las estadísticas para él y todas sus particiones. Solo usa -p
opción
$ iostat -p
Salida:
Linux 4.4.0-78-generic (shinigami) 05/23/2017 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
14.93 0.10 2.51 3.19 0.00 79.28
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 15.82 297.18 474.87 5928512 9473117
sda1 0.00 0.11 0.00 2108 0
sda2 0.01 0.28 0.00 5679 1
sda3 0.00 0.10 0.00 2084 0
sda4 0.00 0.10 0.00 2092 0
sda5 0.09 0.77 45.62 15428 910068
sda6 3.26 102.76 117.09 2049957 2335908
sda7 12.09 192.75 306.99 3845120 6124136
sda8 0.12 0.20 5.16 3896 103004
mmcblk0 0.01 0.31 0.00 6282 0
mmcblk0p1 0.01 0.26 0.00 5242 0
$ iostat -p sdf 1 2
Linux 3.10.0-514.16.1.el7.x86_64 (centos7-srv) 05/23/2017 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
7.18 0.41 3.94 4.10 0.00 84.37
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sdf 0.47 3.54 0.00 4656 0
sdf1 0.09 0.70 0.00 920 0
sdf2 0.09 0.69 0.00 904 0
sdf3 0.09 0.69 0.00 904 0
sdf4 0.09 0.69 0.00 904 0
avg-cpu: %user %nice %system %iowait %steal %idle
6.00 1.00 2.00 0.00 0.00 91.00
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sdf 0.00 0.00 0.00 0 0
sdf1 0.00 0.00 0.00 0 0
sdf2 0.00 0.00 0.00 0 0
sdf3 0.00 0.00 0.00 0 0
sdf4 0.00 0.00 0.00 0 0
10. Mostrar información de estadísticas de lvm2
Es posible ver las estadísticas de LVM usando la opción -N
. El comando muestra los nombres del mapeador de dispositivos registrados para cualquier dispositivo del mapeador de dispositivos.
$ iostat -N
Conclusión
Podemos decirle a iostat que omita la salida para cualquier dispositivo para el que no hubo actividad durante el período de muestra con -z
opción.
Una de las ventajas de esta herramienta es que puede ejecutarlos sin privilegios de root. Puede profundizar más explorando la página del manual de iostat escribiendo man iostat en su consola para traer la página del manual de iostat.
Lea también:
- Cómo monitorear el rendimiento de Linux usando el comando Sar
- 14 herramientas de línea de comandos para comprobar el uso de la CPU en Linux