iotop - Pro-Prozess-Disk-I/O-Monitor-Spickzettel
iotop ist ein top-ähnliches Utility, das Disk-I/O-Nutzung pro Prozess in Echtzeit anzeigt. Während iostat dir sagt, dass ein Device beschäftigt ist, sagt dir iotop, welcher Prozess das Lesen und Schreiben macht, mit welcher Rate und mit welcher I/O-Priorität. Es ist der schnellste Weg, um die Frage zu beantworten, “was hämmert gerade auf die Disk?” Es liest Kernel-Accounting-Daten und braucht daher Root.
Installation
| Plattform | Befehl |
|---|
| Debian/Ubuntu | sudo apt install iotop |
| Fedora/RHEL | sudo dnf install iotop |
| Arch Linux | sudo pacman -S iotop |
| Anforderung | Kernel mit CONFIG_TASK_IO_ACCOUNTING (Standard) |
| Verifizieren | sudo iotop --version |
Ausführung
| Befehl | Beschreibung |
|---|
sudo iotop | Interaktive Live-Ansicht aller Prozesse |
sudo iotop -o | Nur Prozesse, die tatsächlich I/O machen |
sudo iotop -a | Kumulierte I/O anzeigen (Summen, nicht Raten) |
sudo iotop -P | Prozesse anzeigen (nicht einzelne Threads) |
sudo iotop -u USER | Nach Benutzer filtern |
sudo iotop -d 5 | Alle 5 Sekunden aktualisieren |
Die Anzeige
| Spalte | Bedeutung |
|---|
TID/PID | Thread- oder Prozess-ID |
PRIO | I/O-Scheduling-Prioritätsklasse |
USER | Prozess-Besitzer |
DISK READ | Aktuelle Read-Rate |
DISK WRITE | Aktuelle Write-Rate |
SWAPIN | % der Zeit, die mit Swap-In verbracht wird |
IO | % der Zeit, die auf I/O wartet |
COMMAND | Die Prozess-Befehlszeile |
Zwei Header-Zeilen zeigen Gesamt und Tatsächliche Disk-Read/Write für das gesamte System.
Interaktive Tasten
| Taste | Aktion |
|---|
o | Toggle --only (Leerlauf-Prozesse ausblenden) |
a | Kumuliert vs. Rate umschalten |
p | Prozesse/Threads umschalten |
r | Sortierreihenfolge umkehren |
← / → | Sortierspalte ändern |
q | Beenden |
Batch / Logging-Modus
Für Skripte und Evidenzbeschaffung, führe nicht-interaktiv aus.
# Logge die Top-I/O-Prozesse alle 2s, 10 Iterationen, nur aktive
sudo iotop -boPqqq -d 2 -n 10 > iotop.log
| Flag | Effekt |
|---|
-b | Batch (nicht-interaktiver) Modus |
-o | Nur aktive Prozesse |
-n N | Anzahl der Iterationen |
-q | Ruhig (wiederholen, um Header zu unterdrücken) |
-k | Kilobytes |
Häufige Workflows
# "Was schreibt gerade auf die Disk?" — nur aktive, Prozesse nicht Threads
sudo iotop -oP
# Fange einen periodischen I/O-Spike über Zeit
sudo iotop -boP -d 1 -n 60 > spikes.log
# Beschuldige einen Benutzer's Prozesse für Disk-Last
sudo iotop -oP -u appuser
I/O-Priorität (Paare mit ionice)
iotop zeigt die PRIO (ionice) Klasse; du änderst sie mit ionice.
| ionice-Klasse | Bedeutung |
|---|
ionice -c 1 | Realtime-I/O-Priorität |
ionice -c 2 -n 0..7 | Best-Effort (Standard), Level 0 = höchste |
ionice -c 3 | Idle — nur I/O, wenn Disk sonst frei |
# Deprioritisiere einen schweren Batch-Job's Disk-I/O
ionice -c 3 -p $(pgrep -n backup)
| Tool | Antwortet |
|---|
| iotop | Welcher Prozess macht Disk-I/O |
| iostat | Ob das Device gesättigt ist |
| pidstat -d | Pro-Prozess-I/O (skriptierbar, sysstat) |
| dstat/dool | Kombinierte System-Ansicht |
Workflow: iostat zeigt die Disk ist beschäftigt → iotop zeigt welcher Prozess → ionice deprioritisiert es.
Ressourcen