GNU/Linux >> Tutoriales Linux >  >> Linux

10 Comando iostat de Linux para informar estadísticas de CPU y E/S

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

Linux
  1. Comando Cat de Linux:uso y ejemplos

  2. Informes de E/S desde la línea de comandos de Linux

  3. Comandos de Linux:trabajos, bg y fg

  4. ¿Linux y puertos de finalización de E/S?

  5. Evaluación de la espera de E/S de la CPU en Linux

Comando iostat en Linux

Cómo verificar la información de la CPU en Linux

Cómo instalar y usar el comando fd en Linux

Opciones de comando y ejemplos de Tee Command en Linux

Una guía para el comando vmstat en Linux

Ejemplos de comandos iostat en Linux