Wenn der Server langsam ist, sind top oder htop die ersten Anlaufstellen. Sie zeigen in Echtzeit, welche Prozesse CPU und RAM verbrauchen.

top - Der Klassiker

top ist auf jedem Linux-System vorinstalliert.

Starten

top

Die Anzeige verstehen

top - 10:30:00 up 7 days, 3:22,  2 users,  load average: 0.52, 0.58, 0.59
Tasks: 195 total,   1 running, 194 sleeping,   0 stopped,   0 zombie
%Cpu(s):  5.3 us,  1.2 sy,  0.0 ni, 93.2 id,  0.3 wa,  0.0 hi,  0.0 si
MiB Mem :   7974.0 total,    523.4 free,   2341.2 used,   5109.4 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   5324.6 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
 1234 www-data  20   0  512340  45332  12344 S   8.3   0.6   1:23.45 php-fpm

Header-Erklärung

| Zeile | Bedeutung | |-------|-----------| | load average | CPU-Auslastung (1/5/15 Min) | | Tasks | Anzahl Prozesse nach Status | | %Cpu | CPU-Aufteilung (us=user, sy=system, id=idle, wa=wait) | | Mem/Swap | RAM und Swap-Nutzung |

Spalten-Bedeutung

| Spalte | Bedeutung | |--------|-----------| | PID | Prozess-ID | | USER | Benutzer | | PR | Priorität | | NI | Nice-Wert | | VIRT | Virtueller Speicher | | RES | Physischer Speicher (wichtig!) | | SHR | Shared Memory | | S | Status (R=Running, S=Sleeping, Z=Zombie) | | %CPU | CPU-Auslastung | | %MEM | RAM-Auslastung |

Wichtige Tastenkürzel in top

| Taste | Funktion | |-------|----------| | q | Beenden | | M | Nach Speicher sortieren | | P | Nach CPU sortieren | | k | Prozess beenden (kill) | | u | Benutzer filtern | | 1 | Einzelne CPU-Kerne anzeigen | | h | Hilfe |

htop - Die bessere Alternative

htop ist moderner und benutzerfreundlicher.

Installation

apt install htop

Starten

htop

Vorteile gegenüber top

  • Farbige Darstellung
  • Mausunterstützung
  • Einfachere Navigation
  • Prozessbaum-Ansicht
  • Direkte Such- und Filterfunktion

htop-Tastenkürzel

| Taste | Funktion | |-------|----------| | F1-F10 | Menü (unten angezeigt) | | / | Suchen | | F4 | Filtern | | F5 | Baumansicht | | F6 | Sortierung ändern | | F9 | Kill-Menü | | Space | Prozess markieren | | c | Tag children | | t | Baumansicht ein/aus | | u | Benutzer filtern |

htop konfigurieren

Drücken Sie F2 (Setup):

  • Spalten anpassen
  • Farben ändern
  • Meter wählen

Konfiguration wird in ~/.config/htop/htoprc gespeichert.

Load Average verstehen

load average: 0.52, 0.58, 0.59
              │     │     │
              │     │     └── Letzte 15 Minuten
              │     └──────── Letzte 5 Minuten
              └────────────── Letzte Minute

Was bedeuten die Zahlen?

  • 1.00 = Eine CPU ist zu 100% ausgelastet
  • 4.00 bei 4 CPUs = Alle CPUs voll ausgelastet
  • 8.00 bei 4 CPUs = Überlastet (Prozesse warten)

Faustregel: Load sollte nicht dauerhaft über der CPU-Anzahl liegen.

CPU-Anzahl ermitteln:

nproc

CPU-Auslastung verstehen

%Cpu(s):  5.3 us,  1.2 sy,  0.0 ni, 93.2 id,  0.3 wa

| Kürzel | Bedeutung | Typisch | |--------|-----------|---------| | us | User (Anwendungen) | Hoch bei PHP, Node.js | | sy | System (Kernel) | Hoch bei I/O | | ni | Nice (niedrige Priorität) | Selten hoch | | id | Idle (Leerlauf) | Sollte bei Ruhe hoch sein | | wa | Wait (Warten auf I/O) | Hoch = Festplatten-Problem | | hi | Hardware Interrupts | Selten relevant | | si | Software Interrupts | Selten relevant |

Wichtig: Hoher wa-Wert deutet auf langsame Festplatten hin!

RAM-Auslastung verstehen

MiB Mem:  7974.0 total,  523.4 free,  2341.2 used,  5109.4 buff/cache

Linux nutzt freien RAM als Cache! Das ist normal und gut.

Verfügbarer Speicher:

free -h

Die Zeile "available" zeigt, wie viel RAM wirklich verfügbar ist.

Häufige Szenarien

Hohe CPU durch einen Prozess

top -c  # Mit vollem Befehl

Verdächtigen Prozess identifizieren und ggf. beenden:

kill -15 PID    # Sanft
kill -9 PID     # Hart

Hoher RAM-Verbrauch

ps aux --sort=-%mem | head -10

I/O-Wait hoch

Festplatten-Engpass. Prüfen mit:

iostat -x 1
iotop

Zombie-Prozesse

Prozesse die beendet sind, aber nicht "aufgeräumt" wurden:

ps aux | grep Z

Parent-Prozess finden und ggf. neustarten.

Prozesse beenden

In htop

1. Prozess mit Pfeiltasten auswählen 2. F9 drücken 3. Signal wählen (15=SIGTERM, 9=SIGKILL) 4. Enter

Per Kommandozeile

kill PID          # SIGTERM (sanft)
kill -9 PID       # SIGKILL (hart)
pkill -f "name"   # Nach Namen
killall nginx     # Alle mit diesem Namen

Nur bestimmte Prozesse

# Alle PHP-Prozesse
htop -p $(pgrep -d, php)

# Prozesse eines Benutzers
htop -u www-data

Alternativen

  • glances: Umfassenderer Systemmonitor
  • btop: Modernes htop-Ähnliches Tool
  • atop: Mit Historie
apt install glances btop

Fazit

top und htop sind unverzichtbar für die Server-Administration. Lernen Sie, die Load Average und CPU-Aufteilung zu lesen. Hoher wa-Wert = I/O-Problem. htop ist komfortabler als top und sollte auf jedem Server installiert sein.