Zum Inhalt springen

iotop - Pro-Prozess-Disk-I/O-Monitor-Spickzettel

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

PlattformBefehl
Debian/Ubuntusudo apt install iotop
Fedora/RHELsudo dnf install iotop
Arch Linuxsudo pacman -S iotop
AnforderungKernel mit CONFIG_TASK_IO_ACCOUNTING (Standard)
Verifizierensudo iotop --version

Ausführung

BefehlBeschreibung
sudo iotopInteraktive Live-Ansicht aller Prozesse
sudo iotop -oNur Prozesse, die tatsächlich I/O machen
sudo iotop -aKumulierte I/O anzeigen (Summen, nicht Raten)
sudo iotop -PProzesse anzeigen (nicht einzelne Threads)
sudo iotop -u USERNach Benutzer filtern
sudo iotop -d 5Alle 5 Sekunden aktualisieren

Die Anzeige

SpalteBedeutung
TID/PIDThread- oder Prozess-ID
PRIOI/O-Scheduling-Prioritätsklasse
USERProzess-Besitzer
DISK READAktuelle Read-Rate
DISK WRITEAktuelle Write-Rate
SWAPIN% der Zeit, die mit Swap-In verbracht wird
IO% der Zeit, die auf I/O wartet
COMMANDDie Prozess-Befehlszeile

Zwei Header-Zeilen zeigen Gesamt und Tatsächliche Disk-Read/Write für das gesamte System.

Interaktive Tasten

TasteAktion
oToggle --only (Leerlauf-Prozesse ausblenden)
aKumuliert vs. Rate umschalten
pProzesse/Threads umschalten
rSortierreihenfolge umkehren
/ Sortierspalte ändern
qBeenden

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
FlagEffekt
-bBatch (nicht-interaktiver) Modus
-oNur aktive Prozesse
-n NAnzahl der Iterationen
-qRuhig (wiederholen, um Header zu unterdrücken)
-kKilobytes

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-KlasseBedeutung
ionice -c 1Realtime-I/O-Priorität
ionice -c 2 -n 0..7Best-Effort (Standard), Level 0 = höchste
ionice -c 3Idle — nur I/O, wenn Disk sonst frei
# Deprioritisiere einen schweren Batch-Job's Disk-I/O
ionice -c 3 -p $(pgrep -n backup)

iotop im Vergleich zu verwandten Tools

ToolAntwortet
iotopWelcher Prozess macht Disk-I/O
iostatOb das Device gesättigt ist
pidstat -dPro-Prozess-I/O (skriptierbar, sysstat)
dstat/doolKombinierte System-Ansicht

Workflow: iostat zeigt die Disk ist beschäftigt → iotop zeigt welcher Prozess → ionice deprioritisiert es.

Ressourcen