Come ottenere IOPS di lettura totale e scrittura totale su Linux?


32

Come faccio a leggere e scrivere IOPS separatamente in Linux, usando la riga di comando o in modo programmatico? Ho installato il sysstatpacchetto.

Per favore, dimmi come posso calcolarli separatamente usando i sysstatcomandi del pacchetto.

Oppure, è possibile calcolarli utilizzando il file system?

es: /proc o /sysoppure/dev

Risposte:


46

iostatfa parte del sysstatpacchetto, che è in grado di mostrare gli iop globali se lo si desidera o mostrarli separati da read / write.

Esegui iostatcon il flag -d per mostrare solo la pagina delle informazioni sul dispositivo e -x per informazioni dettagliate (statistiche di lettura / scrittura separate). È possibile specificare il dispositivo per il quale si desiderano informazioni semplicemente aggiungendole successivamente sulla riga di comando.

Prova a correre iostat -dxe guardare il riepilogo per avere un'idea dell'output. Puoi anche utilizzare iostat -dx 1per mostrare un output in continuo aggiornamento, utile per la risoluzione dei problemi o il monitoraggio live,

Usando awk, il campo 4 ti darà letture / secondo , mentre il campo 5 ti darà scritture / secondo .

Solo letture / secondo:

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

Scrive / sec solo:

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

Letture / sec e scritture / sec separate da una barra:

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

IOPS generali (di cosa parla la maggior parte delle persone):

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

Ad esempio, eseguendo l'ultimo comando con il mio disco principale, / dev / sda, è simile al seguente:

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

Si noti che non è necessario essere root per eseguire neanche questo, rendendolo utile per gli utenti senza privilegi.

TL; DR: se sei interessato sda, il seguente comando ti fornirà IOPS generali per sda:

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

Se vuoi sommare gli IOPS su tutti i dispositivi, puoi usare di nuovo awk:

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

Questo produce output in questo modo:

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


Grazie Mr.Dannel è utile. se voglio ottenere il sistema completo Leggi / scrivi IOPS Come ottenere?
shas

quando corro iostat -dx 1ho ricevuto ans in questo modo 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.11per dm-0, dm-1, dm-2 ricorsivamente dovrei aggiungere?
shas

Ho aggiornato la risposta con un modello generale e un esempio per sda. Se vuoi semplicemente vedere gli IOPS per il tuo disco rigido, usa l'ultimo comando per gli IOPS generali ( iostat -d sda | grep sda | awk '{ print $2; }')
Daneel,

No, desidero separatamente come menzioni nella prima risposta. un po 'confuso, dm-*così ho chiesto, ho bisogno di eseguire l'aggiunta su quelle partizioni
shas

Ah, ok È possibile utilizzare il comando seguente per verificare cosa sia ogni dm-xdispositivo: lvdisplay|awk '/LV Name/{n=$3} /Block device/{d=$3; sub(".*:","dm-",d); print d,n;}'- Aggiornerò la risposta con questo, oltre a come aggiungere i risultati.
Daneel,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.