Linux iotop Befehl
iotop ist ein Linux-Systemüberwachungstool, das dem Befehl top ähnelt, sich jedoch auf die Anzeige der Festplatten-I/O-Nutzung konzentriert. Es kann die Festplatten-Lese-/Schreibaktivität jedes Prozesses im System in Echtzeit überwachen und Systemadministratoren dabei helfen, I/O-intensive Prozesse zu identifizieren.
Im Gegensatz zu Tools wie iostat bietet iotop eine prozessbasierte I/O-Überwachung, mit der sich die Lese-/Schreibgeschwindigkeit und die kumulierte I/O-Menge jedes Prozesses genau bestimmen lassen.
iotop installieren
Die meisten Linux-Distributionen installieren iotop nicht standardmäßig, daher muss es manuell installiert werden:
Beispiele
sudo apt-get install iotop
# RHEL/CentOS-Systeme
sudo yum install iotop
# Fedora-Systeme
sudo dnf install iotop
# Arch Linux
sudo pacman -S iotop
Grundlegende Syntax
Das grundlegende Befehlsformat von iotop lautet wie folgt:
sudo iotop [选项]
Hinweis: iotop erfordert Root-Rechte zum Ausführen, da es auf die I/O-Statistiken des Kernels zugreifen muss.
Allgemeine Optionen und Parameter
| Option | Beschreibung |
|---|---|
-ooder--only |
Nur Prozesse anzeigen, die tatsächlich I/O-Operationen ausführen |
-boder--batch |
Nicht-interaktiver Modus, geeignet für die Verwendung in Skripten |
-n NUM |
Anzahl der Iterationen im nicht-interaktiven Modus |
-d SEC |
Aktualisierungsintervall festlegen (Sekunden) |
-p PID |
Nur Prozesse mit der angegebenen PID überwachen |
-u USER |
Nur Prozesse des angegebenen Benutzers überwachen |
-Poder--processes |
Nur Prozesse anzeigen, keine Threads |
-aoder--accumulated |
Kumulative E/A anstelle der Bandbreite anzeigen |
-koder--kilobytes |
KB/s anstelle von B/s als Einheit verwenden |
-toder--time |
Zeitstempel zur Ausgabe hinzufügen |
-qoder--quiet |
Kopfzeileninformationen reduzieren (im nicht-interaktiven Modus automatisch aktiviert) |
Tastenkürzel im interaktiven Modus
Im interaktiven Modus unterstützt iotop die folgenden Tastenkürzel-Operationen:
| Tastenkürzel | Funktion |
|---|---|
| Linke/rechte Pfeiltasten | Sortierfeld ändern |
| r | Sortierung umkehren |
| o | Nur aktive E/A-Prozesse anzeigen (entspricht der Option -o) |
| p | Prozess-/Thread-Anzeigemodus umschalten |
| a | Kumulativen/Echtzeit-Anzeigemodus umschalten |
| q | iotop beenden |
| i | Prioritätsfilterung ändern (nur Prozesse mit höherer Priorität anzeigen) |
| Beliebige Taste | Anzeigeaktualisierung erzwingen |
Erklärung der Ausgabefelder
Die Ausgabe von iotop enthält mehrere Felder, und die Bedeutung jedes Feldes ist wie folgt:
- TID/PID: Thread-ID / Prozess-ID
- PRIO: I/O-Priorität (ionice-Wert unter Linux)
- USER: Prozessbesitzer
- DISK READ: Festplattenlesegeschwindigkeit
- DISK WRITE: Festplattenschreibgeschwindigkeit
- SWAPIN: Swap-Speicher-Nutzung in Prozent
- IO>: I/O-Nutzung in Prozent
- COMMAND: Prozessname
Anwendungsbeispiele
Beispiel 1: Grundlegende Überwachung
sudo iotop
Dies startet eine interaktive Oberfläche, die die I/O-Aktivität aller Prozesse anzeigt, sortiert nach I/O-Nutzung.
Beispiel 2: Nur aktive I/O-Prozesse anzeigen
sudo iotop -o
Oder drücken SieoTaste nach dem Ausführen von iotop, um nur Prozesse anzuzeigen, die derzeit I/O-Operationen ausführen.
Beispiel 3: Prozesse eines bestimmten Benutzers überwachen
sudo iotop -u apache
Nur die I/O-Aktivität der Prozesse des Benutzers apache überwachen.
Beispiel 4: Ausgabe im nicht interaktiven Modus
sudo iotop -b -n 3 -d 2
Im nicht interaktiven Modus ausführen, alle 2 Sekunden aktualisieren und nach 3 Ausgaben der Ergebnisse beenden.
Beispiel 5: Einen bestimmten Prozess überwachen
sudo iotop -p 1234
Nur die I/O-Aktivität des Prozesses mit PID 1234 überwachen.
Praktische Anwendungsszenarien
Szenario 1: Die Ursache einer Systemverlangsamung ermitteln
Wenn das System langsam reagiert, ausführen:
sudo iotop -o
So lässt sich schnell erkennen, welche Prozesse die Festplatte stark lesen/schreiben und dadurch einen System-I/O-Engpass verursachen.
Szenario 2: Datenbankleistung überwachen
Für Datenbankserver wie MySQL:
sudo iotop -u mysql -o
Speziell die I/O-Aktivität des Benutzers mysql überwachen, um die Festplattenlast der Datenbank zu analysieren.
Szenario 3: I/O-Aktivität regelmäßig aufzeichnen
sudo iotop -b -t -n 5 -d 10 > iotop_log.txt
Zeichnen Sie die I/O-Aktivität alle 10 Sekunden auf, insgesamt 5 Mal, und speichern Sie die Ergebnisse für die spätere Analyse in einer Datei.
Hinweise
- iotop erfordert, dass der Kernel die I/O-Accounting-Funktion unterstützt, die normalerweise in neueren Linux-Kernels aktiviert ist.
- In einigen virtualisierten Umgebungen meldet iotop I/O-Statistiken möglicherweise nicht genau.
- Häufiges Aktualisieren (z. B. Intervalle von weniger als 1 Sekunde) kann die Systemleistung beeinträchtigen.
- Kumulative I/O-Statistiken (Option -a) werden nach einem Systemneustart zurückgesetzt.
- Bei SSD-Geräten können hohe I/O-Wartezeiten darauf hinweisen, dass das Gerät seine Leistungsgrenze erreicht hat.
Alternative Tools
Wenn iotop nicht verfügbar ist, ziehen Sie die folgenden Alternativen in Betracht:
- dstat: Umfassendes Tool zur Leistungsüberwachung, enthält Festplatten-I/O-Statistiken
- atop: Fortgeschrittenes Systemüberwachungstool, enthält I/O-Statistiken auf Prozessebene
- nmon: AIX/Linux-Performance-Monitoring-Tool
- pidstat: Teil des sysstat-Toolkits, kann Prozess-I/O melden
Zusammenfassung
iotop ist ein leistungsstarkes Werkzeug für Linux-Systemadministratoren zur Überwachung der Festplatten-I/O-Aktivität. Durch die I/O-Überwachung auf Prozessebene lassen sich Leistungsengpässe schnell lokalisieren. Die Beherrschung der Verwendung von iotop kann Systemleistungsprobleme im Zusammenhang mit Festplatten-I/O effektiv diagnostizieren und lösen.
Andere Erweiterungen
Linux-Befehlsenzyklopädie