Linux iostat-Befehl
1. Überblick über den iostat-Befehl
iostat (Input/Output Statistics) ist ein leistungsstarkes Performance-Monitoring-Tool auf Linux-Systemen und ist Teil des sysstat-Pakets. Es wird hauptsächlich zur Überwachung der System-Festplatten-I/O-Aktivität und der CPU-Auslastung verwendet.
1.1 Grundlegende Funktionen
- Überwachen der Lese-/Schreibgeschwindigkeit der System-Festplatten-I/O
- CPU-Auslastung anzeigen
- Gerätelast zusammenfassen
- I/O-Leistungsengpässe identifizieren
1.2 Typische Anwendungsszenarien
- Server-Leistungsoptimierung
- Leistungsanalyse von Speichergeräten
- Fehlerbehebung bei Systemengpässen
- Kapazitätsplanung
2. Installation und grundlegende Verwendung
2.1 Installationsmethoden
Die meisten Linux-Distributionen installieren iostat nicht standardmäßig; Sie müssen zuerst das Paket sysstat installieren:
Beispiel
sudo apt-get install sysstat
# CentOS/RHEL
sudo yum install sysstat
# Fedora
sudo dnf install sysstat
2.2 Grundlegendes Befehlsformat
Beispiel
Einfaches Beispiel
Beispiel
iostat
# Alle 2 Sekunden aktualisieren, insgesamt 5-mal anzeigen
iostat 2 5
3. Detaillierte Befehlsoptionen
3.1 Allgemeine Optionen
| Option | Beschreibung |
|---|---|
| -c | Nur CPU-Auslastung anzeigen |
| -d | Nur Festplattennutzung anzeigen |
| -h | In menschenlesbarem Format anzeigen (z. B. KB, MB, GB) |
| -k | Daten in KB anzeigen |
| -m | Daten in MB anzeigen |
| -N | Gerätezuordnungsnamen anzeigen |
| -p | Statistiken für ein angegebenes Gerät oder eine Partition anzeigen |
| -t | Zeitstempel anzeigen |
| -x | Erweiterte Statistiken anzeigen |
| -y | Ersten Bericht überspringen (wird normalerweise mit einem Intervall verwendet) |
3.2 Erweiterte Optionen
| Option | Beschreibung |
|---|---|
| -z | Ausgabe für Geräte ohne Aktivität weglassen |
| -j ID | Persistente Namen für angegebene Geräte anzeigen |
| --dec={0|1|2} | Anzahl der Dezimalstellen angeben |
4. Interpretation der Ausgabeergebnisse
4.1 CPU-Statistik-Abschnitt
avg-cpu: %user %nice %system %iowait %steal %idle
5.32 0.00 1.06 0.25 0.00 93.37
- %user: CPU-Nutzung auf Benutzerebene (Anwendung)
- %nice: CPU-Nutzung von Prozessen mit angepasster Priorität
- %system: CPU-Nutzung auf Systemebene (Kernel)
- %iowait: Prozentsatz der Zeit, in der die CPU auf den Abschluss von E/A-Vorgängen wartet
- %steal: "Gestohlene" Zeit in virtuellen Umgebungen
- %idle: Prozentsatz der CPU-Leerlaufzeit
4.2 Festplatten-Statistik-Abschnitt (Basis)
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 1.02 12.34 5.67 1234567 567890
- tps: Übertragungen pro Sekunde
- kB_read/s: Pro Sekunde gelesene Datenmenge (KB)
- kB_wrtn/s: Pro Sekunde geschriebene Datenmenge (KB)
- kB_read: Insgesamt gelesene Datenmenge (KB)
- kB_wrtn: Gesamtmenge der geschriebenen Daten (KB)
4.3 Erweiterte Statistiken (-x Option)
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 0.00 0.50 1.00 0.50 12.00 4.00 21.33 0.02 10.00 8.00 14.00 6.00 0.90
- rrqm/s: Anzahl zusammengeführter Leseanforderungen pro Sekunde
- wrqm/s: Anzahl zusammengeführter Schreibanforderungen pro Sekunde
- r/s: Anzahl abgeschlossener Lese-E/A-Operationen pro Sekunde
- w/s: Anzahl abgeschlossener Schreib-E/A-Operationen pro Sekunde
- rkB/s: KB gelesen pro Sekunde
- wkB/s: KB geschrieben pro Sekunde
- avgrq-sz: Durchschnittliche Datengröße pro E/A-Operation (Sektoren)
- avgqu-sz: Durchschnittliche E/A-Warteschlangenlänge
- await: Durchschnittliche Wartezeit pro E/A-Operation (Millisekunden)
- r_await: Durchschnittliche Wartezeit für Leseoperationen (Millisekunden)
- w_await: Durchschnittliche Wartezeit für Schreibvorgänge (Millisekunden)
- svctm: Durchschnittliche Servicezeit pro I/O-Vorgang (Millisekunden)
- %util: Prozentsatz der Gerätebandbreitenauslastung
5. Praktische Beispielanalyse
5.1 Eine bestimmte Festplatte überwachen
Beispiel
iostat -d -x sda 2 3
5.2 Umfassende Überwachung von CPU und Festplatte
Beispiel
iostat -c -d -x -t 5
5.3 Anzeige in MB
Beispiel
iostat -d -m
5.4 Alle Partitionen überwachen
Beispiel
iostat -p ALL
6. Interpretation der Leistungskennzahlen und Optimierungsvorschläge
6.1 Wichtige Leistungskennzahlen
%util: Geräteauslastung
80% zeigt an, dass sich das Gerät der Sättigung nähert
- Ein anhaltender Wert von 100% zeigt an, dass das Gerät zum Flaschenhals geworden ist
await: E/A-Wartezeit
- Normalerweise sollte er < 10ms sein
50ms deutet auf mögliche Leistungsprobleme hin
avgqu-sz: Warteschlangenlänge
> 1 deutet darauf hin, dass das Gerät überlastet sein könnte
6.2 Diagnose häufiger Probleme
Problem 1: Hohe %util, aber geringer Durchsatz
- Mögliche Ursache: Übermäßige zufällige I/O
- Lösung: Optimieren Sie das I/O-Muster der Anwendung, ziehen Sie SSDs in Betracht
Problem 2: Hohe await, aber niedrige %util
- Mögliche Ursache: Engpass beim Controller oder Bus
- Lösung: Überprüfen Sie die HBA-Karte oder den Storage-Controller
Problem 3: Abnorm hohe rkB/s oder wkB/s
- Mögliche Ursache: Anwendungen mit intensiven Lese-/Schreibvorgängen
- Lösung: Optimieren Sie die Anwendung oder vergrößern Sie den Cache
7. Integration mit anderen Tools
7.1 Kombination mit vmstat
Beispiel
vmstat 1 5 & iostat -x 1 5
7.2 Kombination mit sar
Beispiel
sar -d
7.3 Kombination mit iotop
Beispiel
iotop
8. Zusammenfassung und Best Practices
8.1 Nutzungsempfehlungen
- Für die Überwachung in Produktionsumgebungen wird empfohlen, die Option -x für detaillierte Daten zu verwenden
- Verwenden Sie für die Langzeitüberwachung sar, um historische Daten zu sammeln
- Achten Sie bei der Analyse von Leistungsproblemen sowohl auf CPU- als auch auf I/O-Daten
- Der Vergleich von Statistiken aus verschiedenen Zeiträumen ist aussagekräftiger
8.2 Häufige Befehlskombinationen
Beispiel
iostat -c -d -x -t -m 5
# Nur erweiterte Festplatteninformationen überwachen
iostat -d -x 2
# Eine bestimmte Partition überwachen
iostat -p sda1 -x 1 10
Durch die Beherrschung des iostat-Befehls können Systemadministratoren die I/O-Leistung von Linux-Systemen effektiv überwachen und analysieren sowie speicherbezogene Leistungsengpässe rechtzeitig erkennen und beheben.
Andere Erweiterungen
Linux-Befehlsenzyklopädie