Wie bekomme ich unter Linux einen vollständigen Lese- und einen vollständigen Schreib-IOPS?

32

Wie kann ich IOPS unter Linux separat über die Befehlszeile oder programmgesteuert lesen und schreiben? Ich habe das sysstatPaket installiert .

Bitte sagen Sie mir, wie ich diese mit sysstatPaketbefehlen separat berechnen kann .

Oder ist es möglich, sie mit dem Dateisystem zu berechnen?

zB: /proc oder /sysoder/dev

shas
quelle

Antworten:

46

iostatist Teil des sysstatPakets, das auf Wunsch die gesamten iops anzeigen oder durch Lese- / Schreibvorgänge getrennt anzeigen kann.

Führen Sie iostatden Befehl mit dem Flag -d aus, um nur die Geräteinformationsseite anzuzeigen, und mit -x, um detaillierte Informationen anzuzeigen (separate Lese- / Schreibstatistiken). Sie können das Gerät angeben, für das Sie Informationen benötigen, indem Sie es anschließend in der Befehlszeile hinzufügen.

Versuchen Sie, iostat -dxdie Zusammenfassung aufzurufen und zu betrachten, um ein Gefühl für die Ausgabe zu bekommen. Sie können auch verwenden iostat -dx 1, um eine kontinuierlich aktualisierte Ausgabe anzuzeigen, die für die Fehlerbehebung oder die Live-Überwachung hilfreich ist.

Wenn Sie verwenden awk, erhalten Sie in Feld 4 Lesevorgänge pro Sekunde und in Feld 5 Schreibvorgänge pro Sekunde .

Liest nur / Sekunde:

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

Schreibt nur / Sek .:

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

Liest / s und schreibt / s mit einem Schrägstrich getrennt:

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

Gesamte IOPS (worüber die meisten Leute sprechen):

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

Das Ausführen des letzten Befehls mit meinem Hauptlaufwerk / dev / sda sieht beispielsweise folgendermaßen aus:

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

Beachten Sie, dass Sie auch nicht als Root angemeldet sein müssen, um dies auszuführen. Dies ist daher nützlich für nicht privilegierte Benutzer.

TL; DR: Wenn Sie nur daran interessiert sind sda, erhalten Sie mit dem folgenden Befehl die Gesamt-IOPS für sda:

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

Wenn Sie die IOPS für alle Geräte addieren möchten , können Sie awk erneut verwenden:

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

Dies erzeugt eine Ausgabe wie folgt:

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

Daneel
quelle
Danke Mr.Dannel, es ist nützlich. wenn ich das gesamte System lesen / schreiben möchte IOPS Wie bekomme ich?
Shas
Wenn ich renne, bekomme iostat -dx 1ich Ans wie folgt 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.11für dm-0, dm-1, dm-2 rekursiv sollte ich hinzufügen?
Shas
Ich habe die Antwort mit einer Gesamtvorlage und einem Beispiel für aktualisiert sda. Wenn Sie nur die IOPS für Ihre Festplatte anzeigen möchten, verwenden Sie den letzten Befehl für die gesamte IOPS ( iostat -d sda | grep sda | awk '{ print $2; }')
Daneel
Nein, ich möchte separat, wie Sie in der ersten Antwort erwähnen. Ein bisschen verwechseln mit, dm-*also fragte ich, ich muss Addition auf diesen Partitionen durchführen
shas
Ahh ok. Mit dem folgenden Befehl können Sie überprüfen, um welche dm-xGeräte es sich handelt: lvdisplay|awk '/LV Name/{n=$3} /Block device/{d=$3; sub(".*:","dm-",d); print d,n;}'- Ich aktualisiere die Antwort damit und füge die Ergebnisse hinzu.
Daneel