Wenn Sie meine Posts hier bei Enable Sysadmin verfolgt haben, wissen Sie, dass ich zuvor als Storage Support Engineer gearbeitet habe. Eine meiner vielen Aufgaben in dieser Rolle bestand darin, Kunden dabei zu helfen, Backups aus ihren Produktionsumgebungen auf dedizierte Backup-Speicher-Arrays zu replizieren. Oftmals kontaktierten mich Kunden, die besorgt über die Geschwindigkeit der Datenübertragung von der Produktion zum Speicher waren.
Nun, wenn Sie jemals im Support gearbeitet haben, wissen Sie, dass es viele Ursachen für ein Symptom geben kann. Der Durchsatz eines Systems kann jedoch enorme Auswirkungen auf massive Datenübertragungen haben. Wenn alles in Ordnung ist, reden wir stundenlang, wenn nicht... Ich habe gesehen, dass ein einziger Replikationsjob Monate dauert.
Wir wissen, dass Linux voller hilfreicher Tools für alle möglichen Probleme ist. Zur Ein-/Ausgabeüberwachung verwenden wir den iostat
Befehl. iostat
ist ein Teil von sysstat
Paket und wird standardmäßig nicht auf allen Distributionen geladen.
Installation und Basisbetrieb
Ich verwende hier Red Hat Enterprise Linux 8 und habe die Installationsausgabe unten eingefügt.
[ Möchten Sie Red Hat Enterprise Linux ausprobieren? Laden Sie es jetzt kostenlos herunter. ]
HINWEIS :Der Befehl wird nach der Installation automatisch ausgeführt.
[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
Wenn Sie den Basisbefehl ohne Optionen ausführen, wird iostat
Zeigt Informationen zur CPU-Auslastung an. Es zeigt auch E/A-Statistiken für jede Partition auf dem System an. Die Ausgabe umfasst Gesamtwerte sowie Werte pro Sekunde für Lese- und Schreibvorgänge. Beachten Sie außerdem, dass die tps Feld ist die Gesamtzahl der Übertragungen pro Sekunde an ein bestimmtes Gerät ausgegeben.
Die praktische Anwendung ist folgende:Wenn Sie wissen, welche Hardware verwendet wird, dann wissen Sie, in welchen Parametern sie arbeiten sollte. Kombinieren Sie dieses Wissen einmal mit der Ausgabe von iostat
, können Sie entsprechende Änderungen an Ihrem System vornehmen.
Intervallläufe
Bei der Fehlersuche oder Datenerfassung kann es hilfreich sein, einen Bericht in bestimmten Intervallen ausführen zu lassen. Führen Sie dazu den Befehl mit dem Intervall (in Sekunden) am Ende aus:
[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
Die obige Ausgabe stammt von einem 30-Sekunden-Lauf.
Sie müssen Strg + C verwenden um den Lauf zu beenden.
Leicht zu lesen
Verwenden Sie die folgenden Optionen, um die Ausgabe zu bereinigen und leichter zu verdauen:
-m
ändert die Ausgabe in Megabyte, was etwas einfacher zu lesen ist und normalerweise von Kunden oder Managern besser verstanden wird.
[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
können Sie ein bestimmtes Gerät angeben, auf das Sie sich konzentrieren möchten. Sie können diese Option mit dem -m
kombinieren für einen schönen und aufgeräumten Blick auf ein besonders besorgniserregendes Gerät und seine Partitionen.
[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
Erweiterte Statistiken
Wenn die Standardwerte Ihnen einfach nicht die benötigten Informationen liefern, können Sie -x
verwenden Flag, um erweiterte Statistiken anzuzeigen:
[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
Einige der Optionen, auf die Sie hier achten sollten, sind:
- avgqu-sz - durchschnittliche Warteschlangenlänge einer an das Gerät ausgegebenen Anfrage
- await – durchschnittliche Zeit für E/A-Anforderungen, die an das zu bedienende Gerät gesendet werden (Millisekunden)
- r_await – durchschnittliche Zeit für die Bearbeitung von Leseanfragen (Millisekunden)
- w_await - durchschnittliche Zeit für die Bearbeitung von Schreibanfragen (Millisekunden)
Es sind noch andere Werte vorhanden, aber auf diese sollten Sie achten.
Herunterfahren
Dieser Artikel behandelt so ziemlich alles, was Sie für die ersten Schritte mit iostat
benötigen . Wenn Sie weitere Fragen haben oder weitere Erläuterungen zu den Optionen benötigen, lesen Sie unbedingt die Manpage oder Ihre bevorzugte Suchmaschine. Weitere Linux-Tipps und -Tricks finden Sie unter Enable Sysadmin!
[ Kostenloser Online-Kurs:Technischer Überblick zu Red Hat Enterprise Linux. ]