¿Existe alguna forma de obtener el resultado de iostat -m y agregar solo la columna en espera de la salida extendida en tiempo real? Sé que esta pregunta suena loca, pero necesito poder obtener todas esas columnas en tiempo real sin enviarlas a un archivo o ejecutar iostat dos veces, ya que eso daría resultados engañosos. Este es centos 6.2 iostat 9.0.4. núcleo 2.6.36.4. Entonces, para resumir, necesito esto.
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 0.56 0.00 0.00 324 485
y necesito agregarle await para que se vea así.
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn await
sda 0.56 0.00 0.00 324 485 10.72
¿Estoy soñando? ¿Estoy viendo esto de manera incorrecta? ¿Necesito compilar mi propio iostat?
Gracias de antemano.
Respuesta1
No estoy seguro de cómo obtener el iostat
formato que buscas. Sin embargo, la herramienta que utilizo para este tipo de seguimiento es personalizable hasta el punto de que se pueden mostrar los campos relevantes. También es excelente para generar datos con fines de reproducción y gráficos.
yo sueloMonitoreo colectivo(disponible en CentOS a través de yum), y elbanderas de verificación de discodebería darte lo que necesitas:
collectl -sD --dskfilt sda
Salida de muestra (puede cambiar las unidades y columnas impresas):
collectl -sD --dskfilt sdb
waiting for 1 second sample...
# DISK STATISTICS (/sec)
# <---------reads---------><---------writes---------><--------averages--------> Pct
#Name KBytes Merged IOs Size KBytes Merged IOs Size RWSize QLen Wait SvcTim Util
sdb 0 0 0 0 336 0 52 6 6 0 0 0 1
sdb 16 0 1 16 389 1 52 7 7 0 0 0 3
sdb 0 0 0 0 1236 9 109 11 11 0 0 0 0
sdb 16 0 1 16 676 3 140 5 4 0 1 1 14
sdb 0 0 0 0 64 1 16 4 4 0 2 1 2
Respuesta2
¿Por qué no crear un contenedor en bash?
La versión de una sola línea se vería así:
iostat 1 2 | grep -w sda | tail -1 | awk {'print $7'}
Esto ejecutará iostat dos veces y devolverá el valor correcto de espera (que es la séptima columna)
Puedes hacer lo mismo con vmstat pasando la columna derecha a awk para obtener toda la CPU iowait. Por ejemplo :
vmstat 1 2 | tail -1 | awk {'print $16'}
Tenga en cuenta que iostat y vmstat son diferentes en cada distribución de Linux y debe elegir la columna correcta.
Respuesta3
Esto parece algo que debería poder controlarse con munin, grafito, etc.
EDITAR: Si su sistema tiene watch
, puede configurar el iostat para que se ejecute automáticamente un número determinado (o repetido infinitamente) de veces, con un espacio específico entre ejecuciones. awk
¡Descubre los campos que realmente deseas!
Respuesta4
Al volver a leer la pregunta original, si el autor busca información en tiempo real, estoy de acuerdo en que recopilar es el camino a seguir. por eso lo escribí. ;)
Si hay algo específico que esté intentando hacer con los datos, tal vez pueda ayudar, pero necesitaría saber más. En cuanto a qué tan en tiempo real desea ser, puede elegir cualquier intervalo de monitoreo de menos de un segundo que desee.
-marca