Wenn der Server langsam reagiert, lautet die erste Frage stets: Was belastet ihn? Die Befehle „top“ und „htop“ zeigen in Echtzeit die laufenden Prozesse an und geben Auskunft darüber, wie viel Prozessorzeit und Arbeitsspeicher diese beanspruchen. Beide sind nützlich, um ein außer Kontrolle geratenes Skript, eine Datenbank, die zu viel Arbeitsspeicher beansprucht, oder einen plötzlichen Anstieg der Besucherzahlen zu erkennen.
Der Befehl „top“
Der Befehl „top“ ist auf fast allen Linux-Systemen standardmäßig verfügbar. Führen Sie ihn im Terminal aus:
top
Die Kopfzeile
Im oberen Bereich des Bildschirms werden zusammengefasste Daten angezeigt:
- Load Average: Die durchschnittliche Systemauslastung der letzten 1, 5 und 15 Minuten. Die Bedeutung dieses Begriffs wird im Artikel „Was bedeutet der Load-Wert unter Linux?“ erläutert.
- %CPU(s): Aufschlüsselung der Prozessorzeit. „
us“ steht für Benutzerprogramme, „sy“ für den Kernel, „id“ für Leerlaufzeit, „wa“ für Wartezeit auf die Festplatte und „st“ bezeichnet bei VPS die Zeit, die die virtuelle Maschine auf den physischen Prozessor gewartet hat. - MiB Mem und MiB Swap: der gesamte, der freie, der belegte und der als Cache genutzte Speicher sowie der Swap-Speicher.
Die Prozessliste
Darunter wird die Liste der Prozesse angezeigt, standardmäßig nach CPU-Auslastung sortiert. Die wichtigsten Spalten sind: PID (Prozess-ID), USER (Eigentümer), RES (tatsächlich belegter physischer Speicher), %CPU, %MEM, TIME+ (insgesamt genutzte Prozessorzeit) und COMMAND.
Der %CPU-Wert eines Prozesses kann auch über 100 % liegen: 100 % entsprechen einem vollständigen Prozessorkern, sodass ein auf vier Kernen laufender Prozess sogar 400 % anzeigen kann.
Nützliche Tastenkombinationen
P: Sortierung nach CPU-Auslastung (Standard)M: Sortierung nach Speicherverbrauch1: Die Prozessorkerne einzelnc: Anzeige der vollständigen Befehlszeile (z. B. welches PHP-Skript gerade ausgeführt wird)u: Filterung der Prozesse eines Benutzersk: Beenden eines Prozesses durch Angabe der PIDq: Abmelden
In einem Skript oder zur Protokollierung gibt der Befehl „top -b -n 1 | head -n 20“ einen einmaligen Snapshot im Terminal aus.
Der Befehl „htop“
htop ist eine farbenfrohere, übersichtlichere und benutzerfreundlichere Variante von top. Es ist nicht überall installiert:
# Debian, Ubuntu
sudo apt install htop
# AlmaLinux, Rocky Linux (a htop az EPEL tárolóban van)
sudo dnf install epel-release
sudo dnf install htop
htop stellt die Auslastung der Kerne und den Speicherverbrauch in Balken dar, lässt sich mit der Maus bedienen und die Prozesse können über die Funktionstasten gesteuert werden:
F3: Suche nach NamenF4: FilterungF5: eine Ansicht, in der auch die Beziehung zwischen Eltern- und Kindprozessen sichtbar istF6: Auswahl eines SortierkriteriumsF9: Senden eines Signals an den ausgewählten Prozess, d. h. Beenden
Eine ausführliche Erläuterung des htop-Bildschirms sowie Informationen zu den weiteren Tasten und Startschaltern finden Sie im Artikel „Installation und Verwendung von htop unter AlmaLinux“.
Prozess beenden
Senden Sie beim Beenden zunächst das „sanfte“ SIGTERM-Signal (15), das dem Programm die Möglichkeit gibt, ordnungsgemäß zu beenden. Verwenden Sie das SIGKILL-Signal (9) nur, wenn das Programm darauf nicht reagiert. Über die Befehlszeile: „kill 12345“ bzw. im äußersten Notfall „kill -9 12345“. Systemdienste wie den Webserver oder die Datenbank sollten Sie nicht auf diese Weise, sondern mit dem Befehl „systemctl“ neu starten.
Worauf sollten Sie achten?
Wenn die Speicherauslastung ständig nahe am Maximum liegt und auch der Swap-Speicher voll wird, benötigt der Server mehr Arbeitsspeicher, oder ein Prozess verursacht einen Speicherleck. Wenn die Auslastung dauerhaft mit dem Datenverkehr steigt, empfiehlt es sich, auf ein größeres KVM-VPS-Paket umzusteigen. Bei Shared Hosting können Sie die Auslastung Ihres eigenen Kontos auf der Seite „CloudLinux-Ressourcenauslastung“ verfolgen.