Si ha seguido mis publicaciones aquí en Enable Sysadmin, sabe que anteriormente trabajé como ingeniero de soporte de almacenamiento. Una de mis muchas tareas en esa función era ayudar a los clientes a replicar las copias de seguridad de sus entornos de producción en matrices de almacenamiento de copias de seguridad dedicadas. Muchas veces, los clientes me contactaban preocupados por la velocidad de la transferencia de datos desde la producción hasta el almacenamiento.
Ahora, si alguna vez ha trabajado en apoyo, sabe que puede haber muchas causas para un síntoma. Sin embargo, el rendimiento de un sistema puede tener enormes implicaciones para las transferencias masivas de datos. Si todo está bien, estamos hablando de horas, si no... He visto que un solo trabajo de replicación lleva meses.
Sabemos que Linux está repleto de herramientas útiles para todo tipo de problemas. Para el monitoreo de entrada/salida, usamos el iostat
dominio. iostat
es parte del sysstat
paquete y no se carga en todas las distribuciones de forma predeterminada.
Instalación y ejecución base
Estoy usando Red Hat Enterprise Linux 8 aquí y he incluido el resultado de la instalación a continuación.
[ ¿Quiere probar Red Hat Enterprise Linux? Descárgalo ahora gratis. ]
NOTA :el comando se ejecuta automáticamente después de la instalación.
[root@rhel ~]# iostat
bash: iostat: command not found...
Install package 'sysstat' to provide command 'iostat'? [N/y] y
* Waiting in queue...
The following packages have to be installed:
lm_sensors-libs-3.4.0-21.20180522git70f7e08.el8.x86_64 Lm_sensors core libraries
sysstat-11.7.3-2.el8.x86_64 Collection of performance monitoring tools for Linux
Proceed with changes? [N/y] y
* Waiting in queue...
* Waiting for authentication...
* Waiting in queue...
* Downloading packages...
* Requesting data...
* Testing changes...
* Installing packages...
Linux 4.18.0-193.1.2.el8_2.x86_64 (rhel.test) 06/17/2020 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
2.17 0.05 4.09 0.65 0.00 83.03
Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 206.70 8014.01 1411.92 1224862 215798
sdc 0.69 20.39 0.00 3116 0
sdb 0.69 20.39 0.00 3116 0
dm-0 215.54 7917.78 1449.15 1210154 221488
dm-1 0.64 14.52 0.00 2220 0
Si ejecuta el comando base sin opciones, iostat
muestra información sobre el uso de la CPU. También muestra estadísticas de E/S para cada partición en el sistema. La salida incluye totales, así como valores por segundo para operaciones de lectura y escritura. Además, tenga en cuenta que el tps el campo es el número total de Transferencias por segundo emitido a un dispositivo específico.
La aplicación práctica es la siguiente:si sabe qué hardware se usa, entonces sabe con qué parámetros debería operar. Una vez que combine este conocimiento con la salida de iostat
, puede realizar cambios en su sistema en consecuencia.
Carreras a intervalos
Puede ser útil en las fases de resolución de problemas o recopilación de datos para ejecutar un informe en un intervalo determinado. Para hacer esto, ejecute el comando con el intervalo (en segundos) al final:
[root@rhel ~]# iostat -m 10
Linux 4.18.0-193.1.2.el8_2.x86_64 (rhel.test) 06/17/2020 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.94 0.05 0.35 0.04 0.00 98.62
Device tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 12.18 0.44 0.12 1212 323
sdc 0.04 0.00 0.00 3 0
sdb 0.04 0.00 0.00 3 0
dm-0 12.79 0.43 0.12 1197 329
dm-1 0.04 0.00 0.00 2 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.24 0.00 0.15 0.00 0.00 99.61
Device tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 0.00 0.00 0.00 0 0
sdc 0.00 0.00 0.00 0 0
sdb 0.00 0.00 0.00 0 0
dm-0 0.00 0.00 0.00 0 0
dm-1 0.00 0.00 0.00 0 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.20 0.00 0.18 0.00 0.00 99.62
Device tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 0.50 0.00 0.00 0 0
sdc 0.00 0.00 0.00 0 0
sdb 0.00 0.00 0.00 0 0
dm-0 0.50 0.00 0.00 0 0
dm-1 0.00 0.00 0.00 0 0
El resultado anterior es de una ejecución de 30 segundos.
Debes usar Ctrl + C para salir de la carrera.
Lectura fácil
Para limpiar el resultado y hacerlo más fácil de digerir, use las siguientes opciones:
-m
cambia la salida a megabytes, que es un poco más fácil de leer y, por lo general, los clientes o gerentes lo entienden mejor.
[root@rhel ~]# iostat -m
Linux 4.18.0-193.1.2.el8_2.x86_64 (rhel.test) 06/17/2020 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
1.51 0.09 0.55 0.07 0.00 97.77
Device tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 22.23 0.81 0.21 1211 322
sdc 0.07 0.00 0.00 3 0
sdb 0.07 0.00 0.00 3 0
dm-0 23.34 0.80 0.22 1197 328
dm-1 0.07 0.00 0.00 2 0
-p
le permite especificar un dispositivo en particular para enfocarse. Puedes combinar esta opción con -m
para una mirada agradable y ordenada a un dispositivo particularmente preocupante y sus particiones.
[root@rhel ~]# iostat -m -p sda
Linux 4.18.0-193.1.2.el8_2.x86_64 (rhel.test) 06/17/2020 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
1.19 0.07 0.45 0.06 0.00 98.24
Device tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 17.27 0.63 0.17 1211 322
sda2 16.83 0.62 0.17 1202 320
sda1 0.10 0.00 0.00 7 2
Estadísticas avanzadas
Si los valores predeterminados simplemente no le brindan la información que necesita, puede usar -x
marcar para ver estadísticas ampliadas:
[root@rhel ~]# iostat -m -p sda -x
Linux 4.18.0-193.1.2.el8_2.x86_64 (rhel.test) 06/17/2020 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
1.06 0.06 0.40 0.05 0.00 98.43
Device r/s w/s rMB/s wMB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sda 12.20 2.83 0.54 0.14 0.02 0.92 0.16 24.64 0.55 0.50 0.00 45.58 52.37 0.46 0.69
sda2 12.10 2.54 0.54 0.14 0.02 0.92 0.16 26.64 0.55 0.47 0.00 45.60 57.88 0.47 0.68
sda1 0.08 0.01 0.00 0.00 0.00 0.00 0.00 23.53 0.44 1.00 0.00 43.00 161.08 0.57 0.00
Algunas de las opciones a las que prestar atención aquí son:
- avgqu-sz:longitud promedio de la cola de una solicitud enviada al dispositivo
- espera:tiempo promedio para que se atiendan las solicitudes de E/S enviadas al dispositivo (milisegundos)
- r_await:tiempo promedio para atender las solicitudes de lectura (milisegundos)
- w_await:tiempo promedio para atender las solicitudes de escritura (milisegundos)
Hay otros valores presentes, pero estos son los que hay que tener en cuenta.
Apagando
Este artículo cubre casi todo lo que necesita para comenzar con iostat
. Si tiene otras preguntas o necesita más explicaciones sobre las opciones, asegúrese de consultar la página del manual o su motor de búsqueda preferido. Para conocer otros consejos y trucos de Linux, no pierda de vista Habilitar Sysadmin.
[ Curso en línea gratuito:descripción técnica general de Red Hat Enterprise Linux. ]