10 Comando iostat de Linux para informar estadísticas de CPU y E / S
El comando Iostat es un comando que se usa para monitorear la carga del dispositivo de entrada / salida (E / S) del sistema al observar el tiempo que los dispositivos están activos en relación con sus tasas de transferencia promedio. El iostat crea informes que se pueden utilizar para cambiar la configuración del sistema para equilibrar mejor la entrada / salida entre los discos físicos.
Iostat está incluido en sysstat paquete. 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 en segundos entre cada informe.
- Contar El parámetro le permite especificar el número 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 subsiguiente 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
Para ejecutarlo, simplemente use el comando en su consola. Aquí tienes una muestra.
# iostat 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 la CPU
- % usuario: porcentaje de utilización de CPU que se produjo durante la ejecución a nivel de usuario (aplicación)
- %bonito : porcentaje de utilización de CPU que se produjo durante la ejecución a nivel de usuario con buena prioridad
- %sistema : porcentaje de utilización de CPU que se produjo durante la ejecución en el nivel del sistema (kernel)
- % iowait: 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
- %robar : porcentaje de tiempo invertido en espera involuntaria por la CPU virtual o las CPU mientras el hipervisor estaba dando servicio a otro procesador virtual
- %inactivo : porcentaje de tiempo que la CPU o las CPU estuvieron inactivas y el sistema no tuvo una solicitud de E / S de disco pendiente
La segunda sección contiene el informe de utilización del dispositivo.
- Dispositivo : nombre de 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: mostrar la cantidad de datos leídos desde el dispositivo expresada en una cantidad de bloques (kilobytes, megabytes) por segundo
- Blk_wrtn / s: cantidad de datos escritos en el dispositivo expresados en varios bloques (kilobytes, megabytes) por segundo
- Blk_read: muestra el número total de bloques leídos
- Blk_wrtn: muestra el número total de bloques escritos
iostat utiliza los archivos siguientes 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 de estadísticas de detalles
El comando Iostat proporciona a los dispositivos de E / S la utilización de informes. Es posible extender el resultado estadístico para un diagnóstico en profundidad con -x
opción
# iostat -x 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
- avg-cpu: es la información del bloque de cpu
- Divide: es información de bloque de dispositivo. Para estar seguro de que estás en el buen dispositivo
- % util: cuánto tiempo tuvo el dispositivo de almacenamiento trabajo pendiente (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 cargue su sistema, mayor será 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 ha serializado E / S y no puede utilizar el almacenamiento subyacente correctamente. Alto = su pila de software es lo suficientemente escalable para cargar correctamente las E / S subyacentes.
- avgrq-sz: Solo un tamaño de solicitud promedio. puede indicar qué tipo de carga de trabajo ocurre.
- wsec / s Y rsec / s: Sectores leídos y escritos por segundo. Divida entre 2048 y obtendrá megabytes por segundo.
- r / s Y w / s: Leer y escribir solicitudes por segundo. Estos números son los que representan las cifras de capacidad de E / S, aunque, por supuesto, dependiendo de la presión que reciba el subsistema de E / S subyacente (¡tamaño de la cola!), Pueden variar.
- rrqm / s Y 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 e informe de nuestra CPU con -c
opción
$ iostat -c 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 la utilización del dispositivo con -d
opción. Enumerará información para cada dispositivo conectado
$ iostat -d 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 en un lado y desde el otro lado podemos mostrar estadísticas extendidas. Significa que podemos mostrar estadísticas extendidas solo para dispositivos con -xd
opción de la siguiente manera
$ 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) Capture 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 informes en unidades de kilobytes o megabytes.
Solo agrega -k
parámetro para crear informes con unidad de kilobytes
$ iostat -k 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
y -m
parámetro 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 la CPU y el dispositivo con retraso
Lo mismo con vmstat, como herramienta estadística, la mejor manera de usarla es con el parámetro de retardo. Con retraso, podemos ver cuál es la tendencia. Aquí hay algunas muestras para ejecutar iostat con retraso.
Ejecute iostat con la unidad de kilobytes, intervalo de 2 segundos con informes de 3 veces
# iostat -k 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.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
Mostrar informe solo de CPU con intervalos de 2 segundos y informes de 2 veces
# 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
Muestre solo el informe del dispositivo sda6 y sda7 con un intervalo de 2 segundos y 2 informes
$ iostat -d sda7 sda6 2 2 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 de nombres de dispositivos persistentes
Es posible imprimir el informe por nombre de dispositivo. En lugar del estándar /dev/sda
nombre, imprimirá el nombre del dispositivo persistente con -j
parámetro y agregando ID
palabra clave (especifique el tipo de nombre persistente).
$ iostat -j ID mmcbkl0 sda6 -x -m 2 2 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 dispositivos de bloque
Es posible mostrar información directamente para cada dispositivo de bloque de forma automática. No es necesario indicar el nombre de cada dispositivo. Mostrará estadísticas para los dispositivos de bloque y todas sus particiones que son utilizadas por 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 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 estadística lvm2
Es posible ver la estadística LVM con -N
opción. El comando muestra los nombres de los mapeadores de dispositivos registrados para cualquier dispositivo mapeador de dispositivos.
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 ejecutarlas sin privilegios de root. Puede profundizar más explorando la página del manual de iostat escribiendo hombre iostat en su consola para traer la página del manual de iostat.
Leer también: