Vor einiger Zeit habe ich mich im Artikel TOP – Ein Standardprogramm zum Anzeigen von Prozessen und Systemresourcen mit dem Ressourcenmonitor und Prozessmanager top auseinandergesetzt. Da top in der Regel standardmäßig vorinstalliert ist, schadet es nicht sich damit ein bisschen auseinander zu setzen.
Genau wie ich werden die meisten von euch wahrscheinlich eher htop einsetzen. Htop lässt sich mit seiner ncurses-Oberfläche konfortabler bedienen und ist außerdem grafisch ansprechender und übersichtlicher gestaltet. Ein guter Grund sich also auch mit htop etwas genauer zu beschäftigen.
Nach dem Aufruf zeigt einem htop eine Ansicht die standardmäßig etwa so aussieht.
Der Aufbau ist dreigeteilt. Im oberen Bereich findet sich eine Übersicht über die Auslastung des Systems sowie einige Daten zur Anzahl der laufenden Prozesse, der Uptime und der Load average. Der mittlere Bereich besteht aus einer Liste mit Prozessen. Der untere Bereich eine Übersicht der Shortcuts, mit denen sich htop bedienen lässt.
Auf einem Desktopsystem mit Mausunterstützung lassen sich die einzelnen Menüpunkte auch mit der Maus aufrufen.
Bereich 1: Die Systemauslastung
1 – Die Auslastung der Prozessorkerne.
Hier wird die Anzahl der Prozessorkerne angezeigt. Bei einem Prozessor mit Hyperthreading verdoppelt sich die hier angezeigte Anzahl der Kerne gegenüber den physisch vorhandenen Kernen. Der Auslastungsbalken ist farbig unterteilt und hat folgende Bedeutung.
- Blau: Auslastung durch Prozesse mit niedriger Priorität
- Grün: Auslastung durch Prozesse mit normaler Priorität
- Rot: Auslastung durch den Kernel des Betriebssystems
- Türkis: Auslastung durch Virtualisierung/Steal Time. Hierbei handelt es sich um Zeit, in der eine virtuelle CPU darauf wartet dass der Hypervisor ihr Zeit auf der richtigen CPU einräumt.
2 – Auslastung von RAM und Swap
Mem steht für den RAM des Systems. Die Farben haben hier folgende Bedeutung.
-
Used zeigt den von Programmen belegten Hauptspeicher an.
- In buffers/cache werden Informationen vorgehalten die schon einmal vom System berechnet und verwendet wurden. Sollten die selben Informationen erneut benötigt werden müssen sie nicht neu berechnet werden sondern können aus dem Buffer gelesen werden. Wenn genug Speicher zur Verfügung steht dient dies der Beschleunigung des Systems. Wenn der Speicherplatz knapp wird kann der Buffer/Cache geleert werden und der Speicherplatz steht anderen Programmen zur Verfügung.
Swp zeigt die Auslastung des Auslagerungsspeichers an.
Die Farbgebung ist hier einfach. Rot = belegt. Mehr gibt es nicht.
3 – Tasks
-
46 (die erste Zahl) gibt die Anzahl der gestarteten Prozesse an.
-
98 thr zeigt die Anzahl der Threads, also Ausführungsstränge, die zu den 46 Prozessen gehören.
-
1 running ist die Anzahl der Prozesse die gerade Daten verarbeiten, oder in der Warteschlange stehen um Daten zu verarbeiten.
4 – Load Average
load average: 0,02, 0,05, 0,00 gibt die Load Average für die letzte Minute, die letzten 5 Minuten und die letzten 15 Minuten an. Load Average gibt die durchschnittliche Systemlast an und darf nicht mit der Prozessorauslastung verwechselt werden. Sie kann eher mit einer Warteschlange für Aufgaben verglichen werden, die vom Prozessor abgearbeitet werden müssen. So kann evtl. die Prozessorauslastung sehr niedrig sein, die Load Average jedoch sehr hoch weil die Festplatte ausgelastet ist und nicht in der Lage ist die angeforderten Daten schnell genug zu liefern. Bei einer Load Average von null stehen alle Systemresourcen zur Verfügung. Steigt die Auslastung des Systems, dann steigt auch die Load Average an, wobei es nach oben keine Grenze gibt. Bis zu welchem Wert ein System zuverlässig arbeitet ist abhängig von den Systemresourcen, insbesondere davon wie stark die CPU ausgelastet ist und wie schnell die Festplatte die angeforderten Daten liefern kann.
5 – Uptime
Gibt an wie lange das System bereits läuft. In diesem Fall 9 Tage, 17 Stunden, 7 Minuten und 34 Sekunden.
Bereich 2 – Die Prozesse
Der mittlere Bereich listet alle aktiven Prozesse auf und zeigt an welche Systemressourcen diese belegen. Standardmäßig ist die Liste nach CPU-Nutzung sortiert. Die Sortierung kann jedoch angepasst werden. Bei einem System mit Mausunterstützung kann man einfach auf den gewünschten Punkt in der grünen Leiste klicken. Also beispielsweise MEM% um nach Speicherverbrauch zu sortieren. Auf einem System ohne Maus kann die Sortierung über die Taste F6 erfolgen.
Die einzelnen Spalten geben folgende Informationen aus.
-
PID: Die Prozess-ID
-
USER: Der Name des Benutzers der den Prozess gestartet hat.
-
PRI: Die Prozesspriorität wie sie vom Kernel gesehen wird. Standardwert ist 20.
-
NI: Nice Wert zur Anpassung der Priorität durch den User. Der Nice Wert reicht von 19 (niedrige Priorität) bis -20 (hohe Priorität).
-
VIRT: Virtueller Speicher enthält allen Code, Daten und Shared-Libraries, Seiten (Speicher Blöcke) die ausgelagert wurden, sowie Seiten für die eine Nutzung geplant wurde, die derzeit aber noch nicht genutzt werden. VIRT ist somit sehr viel höher als der tatsächlich genutzte Arbeitsspeicher.
-
RES: (resident) Anteil der im physischen Speicher liegt, und nicht ausgelagert wurde. Auch hier kann es zu Überschneidungen kommen, wenn mehrere Programme die gleichen Bibliotheken verwenden. Somit kann auch die Summe von RES höher sein als der tatsächlich belegte Speicher.
-
SHR: (shared) gibt den Speicherplatz an der evtl mit anderen Programmen geteilt wird.
Der tatsächlich von einem Prozess verwendete Hauptspeicher liegt also irgendwo zwischen RES und RES-SHR, abhängig davon wie viele Prozesse diese gemeinsam genutzten Bibliotheken nutzen.
-
S: Status des Prozesses. Es stehen folgende Status zur Verfügung: ‘D’ = uninterruptible sleep, ‘R’ = running, ‘S’ = sleeping, ‘T’ = traced or stopped, ‘Z’ = zombie.
-
CPU%: Prozentsatz der CPU-Zeit, die gerade von diesem Prozess verwendet wird.
-
MEM%: Prozentsatz des Hauptspeichers den der Prozess belegt. Basierend auf RES.
-
TIME+: Prozessorzeit die der Prozess seit seinem Start genutzt hat in Minuten:Sekunden.Hundertstel Sekunden.
-
Command: Der vollständige Befehl der ausgeführt wird.
Bereich 3 – Tastatur-Shortcuts
Der untere Bereich ist eine Hilfestellung zur Bedienung und Anpassung von htop.
-
F1 Hilfe: Mit einem Druck auf die F1-Taste öffnet sich eine kurze Hilfeseite von htop. Hier werden vor allem die verschiedenen Tastenkombinationen beschrieben, mit denen htop bedient werden kann.
-
F2 Setup: Htop lässt sich sehr umfangreich Anpassen. Die Anpassungen reichem von der Änderung des Farbschemas, bis hin zum kompletten Neuaufbau der einzelnen Bereiche. So kann beispielsweise im oberen Bereich anstatt der Auslastung der einzelnen CPU-Kerne eine Durchschnittsanzeige eingeblendet werden, oder es kann die aktuelle Uhrzeit oder der Hostname eingeblendet werden.Die Spalten im mittleren Bereich können komplett neu aufgebaut werden. So kann Beispielsweise die Lese- und Schreibrate auf die Datenträger eingeblendet werden. Außerdem lässt sich das Design der Anzeigen verändern.
-
F3 Search: Mit F3 kann htop nach Usernamen, Prozessnamen usw. durchsucht werden.
-
F4 Filter: Die Anzeige kann gefiltert werden, so das nicht relevante Prozesse ausgeblendet werden.
-
F5 Tree: Anstatt einer einzelnen Zeile pro Prozess wird ein Prozessbaum angezeigt. Hiermit wird dargestellt welche Prozesse aufeinander aufbauen.
-
F6 Sort: Die Anzeige kann nach einzelnen Spalten sortiert werden. Beispielsweise nach CPU-Auslastung, Speicherplatzverbrauch oder I/O.
-
F7 Nice-: Der Nice-Wert kann verringert werden um dem Prozess eine höhere Priorität zu geben (nur Root darf die Prozesspriorität erhöhen)
-
F8 Nice+: Erhöht den Nice-Wert und verringert damit die Prozesspriorität. Dies darf von jedem Nutzer vorgenommen werden.
-
F9 Kill: Zeigt eine Liste mit Signalen die an den Prozess gesendet werden können. Standardmäßig ausgewählt ist SIGTERM zum ordentlichen Beenden von Prozessen.
Schluss
Wer auch nur gelegentlich mit der Kommandozeile von Linux arbeitet kommt früher oder später auch mit htop in Berührung. So ging es natürlich auch mir. Allerdings habe ich mich jahrelang nicht mit dem so häufig eingesetzten Programm befasst. Htop ist schnell aufgerufen und zeigt auf den ersten Blick mit seiner graphischen Darstellung die Systemauslastung an. Dafür habe ich htop genutzt, für mehr nicht.
Wie umfangreich sich htop anpassen lässt und dass sich damit auch Lese- und Schreibzugriffe auf die Datenträger darstellen lassen war mir nicht klar. Hierzu habe ich immer iotop genutzt. Das htop eine Suchfunktion hat war mir zwar bekannt, genutzt habe ich sie aber irgendwie nie. Erst beim schreiben dieses Beitrags habe ich auch mit der Suchfunktion gespielt und entdeckt, wie komfortabel sich htop wirklich bedienen lässt.
Höchst wahrscheinlich werde ich htop in Zukunft noch häufiger einsetzen als bisher.
htop – laufende Prozesse und Systemressourcen im Blick ist ein Beitrag von techgrube.de.