Linux iostat-Befehl

Linux 命令大全Linux-Befehlsenzyklopädie


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

# Ubuntu/Debian
sudo apt-get install sysstat

# CentOS/RHEL
sudo yum install sysstat

# Fedora
sudo dnf install sysstat

2.2 Grundlegendes Befehlsformat

Beispiel

iostat [Optionen] [Intervall] [Anzahl]

Einfaches Beispiel

Beispiel

# Statistiken für alle Geräte einmal anzeigen
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

# sda-Festplatte überwachen, alle 2 Sekunden aktualisieren, insgesamt 3-mal anzeigen
iostat -d -x sda 2 3

5.2 Umfassende Überwachung von CPU und Festplatte

Beispiel

# CPU und Festplatte überwachen, alle 5 Sekunden aktualisieren, kontinuierlich anzeigen
iostat -c -d -x -t 5

5.3 Anzeige in MB

Beispiel

# Festplattenstatistiken in MB anzeigen
iostat -d -m

5.4 Alle Partitionen überwachen

Beispiel

# Alle Partitionen überwachen, einschließlich LVM
iostat -p ALL

6. Interpretation der Leistungskennzahlen und Optimierungsvorschläge

6.1 Wichtige Leistungskennzahlen

  1. %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
  2. await: E/A-Wartezeit

    • Normalerweise sollte er < 10ms sein
    • 50ms deutet auf mögliche Leistungsprobleme hin

  3. 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

# Speicher und I/O gleichzeitig überwachen
vmstat 1 5 & iostat -x 1 5

7.2 Kombination mit sar

Beispiel

# Historische I/O-Daten anzeigen
sar -d

7.3 Kombination mit iotop

Beispiel

# Prozesse mit hoher I/O-Last identifizieren
iotop

8. Zusammenfassung und Best Practices

8.1 Nutzungsempfehlungen

  1. Für die Überwachung in Produktionsumgebungen wird empfohlen, die Option -x für detaillierte Daten zu verwenden
  2. Verwenden Sie für die Langzeitüberwachung sar, um historische Daten zu sammeln
  3. Achten Sie bei der Analyse von Leistungsproblemen sowohl auf CPU- als auch auf I/O-Daten
  4. Der Vergleich von Statistiken aus verschiedenen Zeiträumen ist aussagekräftiger

8.2 Häufige Befehlskombinationen

Beispiel

# Umfassender Überwachungsbefehl
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.

Linux 命令大全Linux-Befehlsenzyklopädie

Andere Erweiterungen