top ist der klassische Live-Prozess-Monitor unter Linux — ein interaktives Werkzeug aus dem procps-Paket, das auf praktisch jedem Linux-System sofort vorhanden ist. Es zeigt eine kontinuierlich aktualisierte Liste laufender Prozesse zusammen mit Last-, CPU- und Speicher-Kennzahlen. Wer einen Server oder Desktop bewusst administriert, kommt an top nicht vorbei: kein Setup, keine Abhängigkeiten, läuft im SSH-Fenster genauso wie auf der lokalen Konsole.

Was top macht

top öffnet eine interaktive Vollbild-Ansicht im Terminal und listet die laufenden Prozesse, standardmäßig sortiert nach CPU-Verbrauch absteigend. Die Anzeige wird per Default alle 3 Sekunden aktualisiert; Header-Zeilen oben fassen Systemlast, Task-Verteilung, CPU-Auslastung und Speicher zusammen, darunter folgt die eigentliche Prozessliste.

Im Gegensatz zu modernen Alternativen wie htop oder btop gehört top zum Standard-Userland praktisch jeder Distribution. Es ist deshalb das verlässliche Werkzeug, wenn auf einem fremden Server schnell ein Bild vom Zustand des Systems gebraucht wird — ohne erst Pakete nachzuinstallieren.

Bash top starten
top

Beendet wird top mit der Taste q.

Header-Zeilen interpretieren

Der Kopfbereich von top umfasst fünf bis sechs Zeilen, die jeweils einen Aspekt des Systemzustands zusammenfassen. Wer diese Zeilen lesen kann, sieht binnen Sekunden, wo es klemmt.

ZeileInhaltBedeutung
topUhrzeit, Uptime, User, Load AverageZustand auf einen Blick
Taskstotal, running, sleeping, stopped, zombieWie viele Prozesse, in welchem Zustand
%Cpu(s)us, sy, ni, id, wa, hi, si, stWofür die CPU Zeit aufwendet
MiB Memtotal, free, used, buff/cacheRAM-Verteilung
MiB Swaptotal, free, used, avail MemSwap und tatsächlich verfügbarer Speicher

Die Load Average zeigt drei Werte für die letzten 1, 5 und 15 Minuten. Sie ist als gleitender Durchschnitt der Run-Queue zu verstehen, also der Anzahl von Prozessen, die laufen oder auf CPU warten. Auf einem 4-Kern-System bedeutet 4.0 „voll ausgelastet”, 8.0 heißt „doppelt überbucht”.

Die CPU-Aufschlüsselung ist besonders aufschlussreich:

FeldBedeutung
usUser-Space-Code (normale Anwendungen)
syKernel-Space (Syscalls, Treiber)
niUser-Space mit modifizierter Nice-Priorität
idIdle — CPU langweilt sich
waI/O-Wait — CPU wartet auf Disk oder Netzwerk
hiHardware-Interrupts
siSoftware-Interrupts
stSteal-Time (Hypervisor klaut CPU in VM-Umgebungen)

Hohe wa-Werte deuten auf Disk-Bottlenecks, hohe st-Werte auf überbuchte virtuelle Hosts. Der Memory-Bereich unterscheidet zwischen used, free und buff/cache — letzterer ist technisch belegt, aber jederzeit für andere Prozesse freigebbar. Für die echte Reserve interessant: avail Mem in der Swap-Zeile.

Spalten verstehen

Unterhalb der Header folgt die eigentliche Prozesstabelle. Die wichtigsten Default-Spalten:

SpalteBedeutung
PIDProzess-ID
USEREigentümer des Prozesses
PRScheduling-Priorität (niedriger ist höher)
NINice-Wert (-20 bis +19, Default 0)
VIRTVirtueller Speicher (alles, was der Prozess adressieren könnte)
RESResident Set Size (tatsächlich im RAM)
SHRShared Memory (z. B. gemeinsam genutzte Bibliotheken)
SStatus: R running, S sleeping, D uninterruptible, Z zombie, T stopped
%CPUAnteil an einer CPU seit letztem Refresh
%MEMAnteil am physischen Speicher
TIME+Aufsummierte CPU-Zeit (mit Hundertstelsekunden)
COMMANDProgrammname (oder volle Cmd-Line mit c)

%CPU kann auf Multi-Core-Systemen Werte über 100 % erreichen — ein Prozess mit acht aktiven Threads auf einem 8-Kern-System darf bei voller Last bis zu 800 % anzeigen.

Interaktive Tasten

top ist primär interaktiv — die meiste Zeit verbringt man darin, mit Tastenkürzeln zu sortieren, zu filtern und gezielt einzugreifen.

TasteWirkung
qBeenden
hHilfe-Übersicht
kProzess killen (PID + Signal abfragen)
rRenice (PID + neuer Nice-Wert)
MNach %MEM sortieren
PNach %CPU sortieren (Default)
cVolle Kommandozeile statt nur Programmname
1Per-CPU-Auslastung statt Gesamtwert
ZFarbschema umschalten
WAktuelle Konfiguration in ~/.toprc schreiben
< / >Sortier-Spalte wechseln
f / oFelder konfigurieren (zeigen, ausblenden, sortieren)
uNach User filtern
RSort-Reihenfolge umkehren
HThreads statt nur Prozesse anzeigen

Diese Tastenkürzel wirken sofort und ohne Bestätigung — M und P sind die mit Abstand am häufigsten gebrauchten und wechseln zwischen den beiden klassischen Sortier-Achsen.

Command-Line-Optionen

Auch ohne interaktive Steuerung lässt sich top über Argumente steuern. Das ist besonders nützlich, um direkt mit der gewünschten Ansicht zu starten.

OptionWirkung
-u USERNur Prozesse eines Users anzeigen
-p PID,PID,…Nur diese PIDs beobachten
-d SECRefresh-Intervall in Sekunden (auch Dezimal: -d 0.5)
-n NNach N Iterationen beenden
-bBatch-Mode (nicht-interaktiv, pipelinetauglich)
-HThreads statt Prozesse
-o FELDInitiale Sortier-Spalte setzen, z. B. -o %MEM
-cVolle Cmd-Line in der COMMAND-Spalte
Bash Nur einen User mit kürzerem Refresh
top -u www-data -d 1

Sehr kurze Refresh-Intervalle (-d 0.5 oder kleiner) treiben den Eigenverbrauch von top nach oben — auf produktiven Servern eher die Finger davon lassen.

Konfiguration speichern

Wer immer dieselbe Sortierung, Spalten-Auswahl oder Farbgebung nutzt, kann das einmalig in der interaktiven Session einstellen und dann mit W in die Datei ~/.toprc schreiben. Beim nächsten Start liest top diese Datei automatisch ein.

In ~/.toprc landen unter anderem die Sortier-Spalte, sichtbare und ausgeblendete Felder, das Farbschema, das Refresh-Intervall sowie die Per-CPU-Anzeige. Die Datei lässt sich auch von Hand editieren, ist aber von top selbst nicht „menschenfreundlich” gestaltet — der zuverlässigste Weg ist f, o, </>, Z und am Ende W.

Bash toprc löschen, falls etwas verstellt wurde
rm ~/.toprc

Batch-Mode für Skripte

Mit -b läuft top nicht-interaktiv und schreibt seine Ausgabe als reinen Text auf STDOUT — ideal zum Pipen, Greppen oder Mitloggen. In Kombination mit -n 1 ergibt das einen einzelnen Snapshot.

Bash Snapshot der Top-CPU-Verbraucher
top -bn1 | head -n 12

top -bn1 liefert genau einen Frame, head -n 12 schneidet Header plus ein paar Zeilen Prozessliste ab. Der Output lässt sich problemlos durch awk, grep oder sort weiterverarbeiten.

Bash Top-5-Prozesse nach CPU per awk
top -bn1 | awk 'NR>7 {print $1, $9, $12}' | head -n 5

NR>7 überspringt die Header-Zeilen, $1, $9 und $12 sind PID, %CPU und COMMAND. Damit lassen sich klassische Monitoring-Pipelines bauen, die ohne zusätzliche Tools auskommen.

Praxis-Patterns

Bash User-spezifische Sicht
top -u www-data

Begrenzt die Anzeige auf alle Prozesse eines bestimmten Nutzers — perfekt für Webserver-Hosts, auf denen mehrere Service-User parallel laufen.

Bash Eine bestimmte PID beobachten
top -p $(pgrep -f myapp | head -1)

pgrep -f myapp liefert PIDs aller Prozesse, die myapp im Kommando enthalten; head -1 nimmt die erste. Die Command-Substitution reicht sie an top -p weiter — ideal, um einen einzelnen Service über längere Zeit zu beobachten.

Bash Snapshot in Datei für späteren Vergleich
top -bn1 > snapshot-$(date +%F-%H%M).txt

Schreibt einen Zeitstempel-Snapshot in eine Datei. Praktisch, um vor und nach einem Lasttest oder Deploy einen Vergleichspunkt zu haben.

Bash Per-Thread-Ansicht
top -H

Mit -H werden statt Prozessen einzelne Threads gezeigt — für Multi-Threaded-Anwendungen wie JVM-Prozesse oder Datenbanken oft die einzige Möglichkeit, den heißen Thread zu finden.

Bash Memory-Top-Liste im Batch
top -bn1 -o %MEM | head -n 17

-o %MEM setzt die Sortierung schon beim Start auf Memory; head schneidet Header + Top-10-Prozesse ab. Klassisch für „wer frisst den RAM auf?”-Analysen aus Cron-Jobs heraus.

Besonderheiten

Load Average ist keine CPU-Auslastung

Der Load-Average misst die Länge der Run-Queue, also wie viele Prozesse laufen oder lauffähig sind. Auf Linux zählen zusätzlich Prozesse im Zustand D (uninterruptible I/O) mit. Hohe Load bei niedriger CPU-Nutzung deutet damit auf Disk- oder Netzwerk-Bottlenecks — nicht auf CPU-Sättigung. Erst der Vergleich von Load und %Cpu(s) zeigt die Wahrheit.

top selbst frisst CPU

Der Refresh-Zyklus liest jedes Mal alle /proc/PID-Verzeichnisse durch und rendert die Tabelle neu. Bei sehr kurzem -d (etwa 0.5s) kann top auf einem busy System spürbar Last erzeugen — auf einem mageren VPS gerne mal 5–10 % CPU. Auf Produktivsystemen lieber bei den 3 Sekunden Default bleiben.

Default-Refresh kann Spikes verschlucken

Drei Sekunden sind eine Ewigkeit für moderne CPUs. Ein Prozess, der für 200 ms auf 100 % CPU geht und dann wieder schläft, taucht in der Mittelung womöglich gar nicht auf. Wer kurze Spitzen jagen will, kombiniert top -d 1 mit Tools wie perf, pidstat oder strace.

1-Toggle ist auf Multi-Core ein Game-Changer

Standardmäßig zeigt top einen Mittelwert über alle Kerne. Mit der Taste 1 werden alle CPUs einzeln aufgeschlüsselt. Auf einem 16-Kern-Server sieht man so sofort, ob Last gleichmäßig verteilt ist oder ob ein einzelner Kern bei 100 % steht, während die anderen schlafen — oft ein Hinweis auf Single-Threaded-Bottlenecks.

H zeigt Threads, die sich sonst verstecken

Ohne -H bzw. die H-Taste fasst top alle Threads eines Prozesses zu einer Zeile zusammen. Programme wie Java-Applikationen, Postgres oder Chromium starten Dutzende bis Hunderte Threads — die schuldige Komponente erkennt man oft erst in der Thread-Ansicht, weil Thread-IDs in /proc wie eigene Prozesse behandelt werden.

R toggelt die Sortier-Reihenfolge

Der Default sortiert absteigend, sodass die hungrigsten Prozesse oben stehen. Mit R dreht sich die Sortierung um — nützlich, um sich anzusehen, was am wenigsten verbraucht (etwa Idle-Daemons), oder um den Default für eigene Skripte umzukehren.

Batch-Mode harmoniert exzellent mit awk

Weil top -b seine Ausgabe in stabilen Spalten produziert, lässt sich der Output mit awk, grep oder sed elegant filtern. Klassische Monitoring-Skripte greifen z. B. mit awk ‘NR>7’ direkt auf die Prozessliste zu und werten %CPU oder %MEM als Zahl aus, ohne zusätzliche Tools.

Alle Defaults sind in ~/.toprc persistierbar

Wer sich an die Tasten f, o, <, >, Z und 1 gewöhnt hat, vergisst gerne die letzte: W. Sie schreibt die aktuelle Session in ~/.toprc — Sortierung, Spalten, Farben, Refresh, Per-CPU-Anzeige. Beim nächsten Login startet top direkt mit dem persönlichen Setup.

Weiterführende Ressourcen

Externe Quellen

/ Weiter

Zurück zu Prozesse & Jobs

Zur Übersicht