¿Cómo obtener IOPS de lectura total y escritura total en Linux?

32

¿Cómo hago para leer y escribir IOPS por separado en Linux, usando la línea de comandos o de manera programática? He instalado el sysstatpaquete

Por favor, dígame cómo calculo esto por separado usando sysstatlos comandos del paquete.

¿O es posible calcularlos usando el sistema de archivos?

ex: /proc o /syso/dev

shas
fuente

Respuestas:

46

iostates parte del sysstatpaquete, que puede mostrar iops generales si lo desea, o mostrarlos separados por lecturas / escrituras.

Ejecute iostatcon el indicador -d para mostrar solo la página de información del dispositivo y -x para obtener información detallada (estadísticas de lectura / escritura separadas). Puede especificar el dispositivo para el que desea obtener información simplemente agregándolo luego en la línea de comando.

Intente ejecutar iostat -dxy mirar el resumen para tener una idea de la salida. También puede usar iostat -dx 1para mostrar una salida de actualización continua, que es útil para la resolución de problemas o la supervisión en vivo

Usando awk, el campo 4 le dará lecturas / segundo , mientras que el campo 5 le dará escrituras / segundo .

Lecturas / segundo solamente:

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $4; }'

Solo escrituras / seg .:

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $5; }'

Lecturas / seg. Y escrituras / seg. Separadas con una barra inclinada:

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $4"/"$5; }'

IOPS generales (de lo que habla la mayoría de la gente):

iostat -d <your disk name> | grep <your disk name> | awk '{ print $2; }'

Por ejemplo, ejecutar el último comando con mi unidad principal, / dev / sda, se ve así:

dan@daneel ~ $ iostat -dx sda | grep sda | awk '{ print $4"/"$5; }' 15.59/2.70

Tenga en cuenta que tampoco necesita ser root para ejecutar esto, lo que lo hace útil para usuarios sin privilegios.

TL; DR: si solo le interesa sda, el siguiente comando le dará IOPS generales para sda:

iostat -d sda | grep sda | awk '{ print $2; }'

Si desea agregar IOPS en todos los dispositivos, puede usar awk nuevamente:

iostat -d | tail -n +4 | head -n -1 | awk '{s+=$2} END {print s}'

Esto produce resultados así:

dan@daneel ~ $ iostat -d | tail -n +4 | head -n -1 | awk '{s+=$2} END {print s}' 18.88

Daneel
fuente
Gracias Sr.Dannel es útil. si quiero obtener el sistema completo Leer / Escribir IOPS ¿Cómo obtenerlo?
shas
cuando corro iostat -dx 1tengo ans como este Linux 2.6.35.14-106.fc14.i686 (shashi) 08/24/2015 _i686_ (2 CPU) Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 2.46 13.80 2.27 2.03 136.26 123.91 60.53 0.11 25.77 4.43 1.91 dm-0 0.00 0.00 2.35 0.77 93.07 6.11 31.86 0.17 53.73 2.59 0.81 dm-1 0.00 0.00 1.02 2.83 8.14 22.66 8.00 0.83 214.34 0.60 0.23 dm-2 0.00 0.00 1.37 11.89 34.77 95.14 9.80 1.67 126.06 0.84 1.11para dm-0, dm-1, dm-2 recursivamente ¿debo agregar?
shas
He actualizado la respuesta con una plantilla general y un ejemplo para sda. Si simplemente quiere ver los IOPS para su disco duro, use ese último comando para IOPS en general ( iostat -d sda | grep sda | awk '{ print $2; }')
Daneel
No, quiero por separado como mencionas en la primera respuesta. un poco confundido con dm-*lo que pregunté, necesito realizar la adición en esas particiones
shas
Ahh ok. Puede usar el siguiente comando para verificar qué es cada dm-xdispositivo: lvdisplay|awk '/LV Name/{n=$3} /Block device/{d=$3; sub(".*:","dm-",d); print d,n;}'- Actualizaré la respuesta con esto, así como también cómo agregar los resultados.
Daneel