AA_123rf-27364130_AlexeyKuznetsov-123RF.jpg

© Alexey Kuznetsov, 123RF

Top, Htop, Atop und Glances im Vergleich

Spürhunde

Erfahrene Anwender schätzen den Systemmonitor Top als probates Hilfsmittel zum Aufspüren von Systemklemmern. Die Alternativen Htop, Atop und Glances erweitern dessen Möglichkeiten.

Als Allzweck-Systemmonitor dient auf jedem Linux-System seit langer Zeit standardmäßig der Befehl Top aus dem Paket procps [1]. Zum alten Eisen gehört das Programm dennoch nicht: Debian, Fedora und OpenSuse forkten das ursprüngliche Paket und veröffentlichten Ende 2011 procps-ng in der Version 3.3.0 [2]. Das generalüberholte Werkzeug glänzt mit vielen neuen Feldern, einer einfacheren Bedienung und einer besseren Performance. Mittlerweile haben Debian "Sid" Procps-ng 3.3.9, aber auch Debian "Wheezy", Ubuntu 14.04 LTS, OpenSuse 13.1 sowie Fedora 20 das neue Top bereits an Bord.

Dennoch blieb Top über die Jahre nicht das einzige Konsolen-Programm zum System-Monitoring. So ersannen findige Entwickler die Alternativen Htop [3], Atop [4] und jüngst das Python-Programm Glances [5] (siehe Tabelle "Funktionsvergleich").

Htop erfreut schon seit 2004 die Anwender mit einer rollbaren Prozessliste, einer einfachen Bedienung via Funktionstasten und ASCII-Balkengrafik für die CPU-Auslastung. Atop erfasst die Auslastung von CPU, Speicher, Disk und Netzwerk und markiert ausgelastete Ressourcen farbig. Zudem zeichnet es Leistungsdaten auf und erlaubt, diese via Berichtsfunktion oder sogar interaktiv nachträglich zu analysieren.

Der Neuankömmling Glances rühmt sich hingegen der Anzeige möglichst vieler Informationen auf einem Terminal mit 80 Zeichen und 24 Zeilen. Zudem bietet es die Möglichkeit, über das Netz entfernte Systeme zu beobachten, auf denen Glances im Server-Modus läuft. Ressourcenengpässe markiert es ebenfalls farbig.

Funktionsvergleich

Funktion Top Htop Atop Glances
Aufzeichnungen X
Berichte X
Engpässe markieren teilweise X X
Kopfbereich anpassen X X automatisch, teilweise X
Felder in Prozessliste anpassen X X vordefinierte Ansichten
Netzwerkverkehr pro Prozess mit Kernel-Modul
Mehrere Ansichten gleichzeitig X
Mehrere Prozesse auswählen X
Client-/Server-Modus X
Webserver-Modus X

Alle Werkzeuge bieten zwei Bereiche: Einer zeigt allgemeine Systeminformationen (CPU, Speicher, Massenspeicher, Netzwerk) an, der andere eine Prozessliste. Glances protokolliert zusätzlich noch in einem kleinen Bereich die letzten Ressourcenengpässe.

Bei Top und Htop dürfen Sie die Liste der Felder konfigurieren. Dagegen erlauben Atop und Glances es lediglich, bestimmte Informationen auszublenden oder zu beschränken. In kleinen Fenstern lassen beide automatisch Spalten weg. Um alle Informationen zu sehen, vergrößern Sie das Fenster so lange, bis keine zusätzlichen Informationen mehr auftauchen.

Top

Das unscheinbare, aber leistungsfähige Top ist auf jedem Linux-System bereits installiert. Der Fork bietet einigen zusätzlichen Komfort: So scrollen Sie per Pfeiltasten durch die Prozessliste, wobei das Programm auch den allgemeinen Bereich aktualisiert – das lässt die Anzeige beim Rollen etwas unruhig erscheinen.

Im Kopfbereich zeigt Top die Uptime, die Anzahl der Benutzer, die Load Average, die Anzahl der Prozesse sowie verschiedene Angaben zur CPU-Auslastung (Kasten "Wichtige Metriken"). Möchten Sie die Werte getrennt nach Prozessorkernen sehen, drücken Sie [**1**]. Die Prozessliste zeigt die Prozess-ID (PID), den Benutzer (USER), die Priorität (PR und NI), die Speicherauslastung (VIRT, RES und SHR), den Prozesszustand (S, siehe Tabelle "Prozesszustände"), CPU- und Speicherauslastung in Prozent (%CPU und %MEM), die Zeit, die der Prozess bislang die CPU belegt hat, sowie den Prozessnamen.

Wichtige Metriken

Metriken wie die CPU-Auslastung in Prozent lassen sich relativ einfach verstehen, andere fallen etwas erklärungsbedürftiger aus.

Die durchschnittliche Last zeigt die Anzahl der Prozesse, die lauffähig waren oder ununterbrechbar warteten. Ununterbrechbar warten Prozesse vor allem auf I/O-Anfragen. Die Angabe fungiert nicht als Maß für die CPU-Auslastung, sondern liefert abhängig von der Anzahl der Prozessoren lediglich eine Angabe über entstehende Wartezeiten. Es gilt daher, diese Angabe immer im Zusammenhang mit der CPU-Auslastung und dem Wait-I/O zu betrachten.

Bei der CPU-Last interessiert neben der Auslastung durch Kernel (sy) und Benutzer-Prozesse (us) vor allem die Angabe zum Wait-I/O (wa). Das ist die Zeit, in der der Prozess-Scheduler keine Prozesse laufen lassen kann, weil alle prinzipiell lauffähigen Prozesse auf I/O-Anfragen warten.

Die Auslastung des Hauptspeichers gibt den virtuellen Adressraum wieder, die Virtual Memory Size (VIRT oder VSZ) sowie den tatsächlich physikalisch belegten Speicher, die Resident Set Size (RES oder RSS). Der virtuelle Adressraum hat wenig zu bedeuten, da viele Prozesse ihn nicht komplett nutzen. Von höherem Interesse ist der physikalisch belegte Speicher – allerdings enthält diese Angabe auch gemeinsam mit anderen Prozessen genutzter Speicher, wie etwa geöffnete Bibliotheken. Diesen zeigen Top (und Htop) als Shared Memory (SHR) an, wobei dieser Wert sich nur auf residenten Speicher bezieht.

Zum Paging zeigen Top, Htop und Atop bei Bedarf die Minor und Major Page Faults an. Bei einem Major Page Fault greift ein Prozess auf eine bei x86-Systemen 4096 Byte große Speicherseite zu, die sich noch nicht im RAM befindet. Diese muss der Kernel vom Datenträger laden. Bei einem Minor Page Fault liegt die Page bereits im Cache.

Neben dem reinen I/O-Durchsatz interessiert bei In- und Output vor allem die Anzahl der Lese- und Schreibvorgänge. Diese zeigt nur Atop im Kopfbereich bei den DSK-Zeilen unter read und write an. Zusammen mit der durchschnittlichen Größe der Requests (KiB/r und KiB/w) geben diese einen Hinweis auf für Festplatten so aufwendige, zufällige Zugriffsmuster.

Prozesszustände

Kürzel Status Bedeutung
D Delay Der Prozess schläft, wartet ununterbrechbar in einem Systemaufruf, in der Regel auf eine I/O-Anfrage. Der Befehl ps aux | grep " [D]" zeigt bei Wait-I/O, welche Prozesse betroffen sind.
R Running Der Prozess läuft beziehungsweise lief gerade.
S Sleeping Der Prozess schläft, wartet ununterbrechbar – zum Beispiel auf eine Antwort auf eine Netzwerkanfrage, die Anfrage eines anderen Prozesses oder eine Benutzereingabe.
T Traced Der Prozess wurde angehalten – etwa, um ihn mit einem Debugger in Einzelschritten zu verfolgen.
Z Zombie Der Prozess hat sich beendet und der Kernel wartet noch darauf, dass der Elternprozess seinen Rückgabewert abholt.

Mit der Taste [F] stellen Sie die anzuzeigenden Felder ein. Die fettgedruckten und mit Stern markierten Felder zeigt Top in der Prozessliste an. Die Leertaste fügt der Anzeige ein Feld hinzu oder entfernt es. Mit [Pfeil-rechts] markieren Sie ein Feld zum Verschieben via [Pfeil-oben] und [Pfeil-unten] (Abbildung 1). Die ausführliche Manpage zu Top erklärt unter FIELDS**/**Columns jedes Feld.

Abbildung 1: Flexibel: Das Top der neuen Generation macht das Einstellen der anzuzeigenden Felder zum Kinderspiel.

Top erfasst nicht, wie viel ein Prozess auf Festplatte schreibt oder davon liest. Für Experten, die wissen wollen, in welcher Kernel-Funktion ein Prozess gerade schläft, eignet sich das Feld WCHAN: Es erlaubt Rückschlüsse darüber, auf was ein Prozess gerade wartet. Aktuelle Versionen bieten gar Felder für Namespaces, wie sie für Linux-Container zum Einsatz kommen.

Das Feld, nach dem Top sortiert, setzt [S]. Top zeigt es in der ersten Zeile der Ansicht Fields Management an. Wählen Sie hier %MEM, sortiert Top die Prozesse nach deren Verbrauch an physikalischen Speicher. Das gelingt in der Hauptansicht auch mit der Taste [Umschalt]+[M], während [Umschalt]+[C] wieder auf das Sortieren nach CPU-Auslastung umstellt. Mit [Umschalt]+[T] sortiert Top nach der verbrauchten CPU-Zeit.

Mit [R] ("Renice") ändern Sie den Nice-Wert eines Prozesses. Dazu müssen Sie die Prozess-ID (PID) und die Signalnummer angeben. Da bei der Ansicht nach CPU-Auslastung die Reihenfolge der Prozesse ständig wechselt, fällt es beim vorgegebenen Aktualisierungsintervall von drei Sekunden etwas schwer, die PID eines Prozesses aus der Tabelle abzulesen. Mit [D] oder [S] setzen Sie ein anderes Intervall, beispielsweise zehn Sekunden. Ein Signal senden Sie dem Prozess mit [K] ("Kill", siehe Tabelle "Signale"). Ohne weitere Angabe schickt Top das Signal SIGTERM, das den Prozess anweist, sich zu beenden.

Signale

Signal Wert Beschreibung Bedeutung
SIGHUP 1 Hang Up Ursprünglich: Modem auflegen. Heute: Daemon anweisen, Konfiguration neu zu laden.
SIGKILL 9 Kill Prozess unfreundlich beenden. Der Prozess bekommt keine Gelegenheit mehr, Daten zu speichern.
SIGSEGV 11 Segmentation Violation Sendet der Kernel, wenn ein Prozess auf einen Speicherbereich zugreift, der ihm nicht gehört.
SIGCONT 18 Continue Pausierten Prozess weiterlaufen lassen.
SIGSTOP 19 Stop Pausiert den Prozess (etwa für Tracing). Fortsetzen mit SIGCONT.
SIGTERM 15 Terminate Prozess freundlich beenden.

Weitere interessante Möglichkeiten erfahren Sie mithilfe von [H] oder via Manpage. So zeigt Top mit der Taste [Umschalt]+[H] alle Benutzer-Threads einzeln an. Mit [Umschalt]+[L] markiert Top einen Suchbegriff in der Prozess- oder Benutzerliste. Das Programm unterstützt auch leistungsfähige Filter: Mit [U] filtern Sie nach Benutzern, mit [O] nach beliebigen Kriterien. So filtert [O] gefolgt von COMMAND=mysql nach allen Prozessen mit MySQL im Namen. %MEM>3,0 listet alle Prozesse, die mehr als 3 Prozent Hauptspeicher verbrauchen. Dabei gilt es auf die korrekte Groß- und Kleinschreibung der Feldnamen zu achten. Zudem vergleicht Top immer zeichenbasiert. Mit einem Ausrufezeichen negieren Sie die Bedingung.

Außerdem kann Top auch mit Farbe umgehen, wie ein Druck auf [Z] beweist. Das Farbschema lässt sich via [Umschalt]+[Z] bestimmen. Eine Baumansicht der Prozesse gibt es mit [Umschalt]+[V]. Um statt der einzeiligen CPU-Übersicht jeden Prozessor einzeln zu sehen, drücken Sie [**1**]. [X] markiert die Spalte mit dem Sortierfeld farbig. Mit [Umschalt]+[A] zeigt Top gar mehrere Prozesslisten (im Top-Jargon: "Fenster") auf einmal. Probieren Sie mal folgende Tastenfolge aus, um Top in seiner ganzen Farbenpracht zu bewundern: [Umschalt]+[A], gefolgt von drei Mal [Z],[X],[A], gefolgt von [Z],[X] (Abbildung 2). Mehr dazu liefert die Manpage unter COMMANDS for Windows.

Abbildung 2: So bunt kann Top sein: Ein Stress-Befehl lastet eine CPU aus, ein weiterer belegt 1 GByte physikalischen Speicher, wie die Speicheransicht mit der blauen Titelzeile zeigt.

Möchten Sie lieber nur eine der vordefinierten Feldgruppen sehen, wechseln Sie stattdessen mit [G] zwischen den einzelnen Gruppen hin und her. Alternativ schließen Sie mit [-] einfach die Ansichten, die Sie nicht brauchen, und lassen beispielsweise nur jene nach CPU- und Speicherauslastung stehen.

Um Top nicht nach jedem Start erneut umständlich an die eigenen Wünsche anpassen zu müssen, speichern Sie per [Umschalt]+[W] die aktuelle Konfiguration in die Datei ~/.toprc. Möchten Sie über all diese Möglichkeiten hinaus noch Spaß haben, sehen Sie sich in der Manpage zu Top den Abschnitt 7. STUPID TRICKS Sampler an.

Htop

Das Programm Htop ähnelt Top weitgehend. Allerdings besteht hier die Möglichkeit, mit den Pfeiltasten die Ansicht vertikal und horizontal zu scrollen. Ansonsten greift Htop in Midnight-Commander-Manier für die Bedienung im Wesentlichen auf die Funktionstasten zurück. Die unterste Zeile zeigt eine Referenz dazu.

Im zweispaltigen Kopfbereich führt Htop mit ASCII-Balken (Abbildung 3) links die CPU-Auslastung pro Prozessorkern auf, gefolgt von der Hauptspeicherauslastung sowie der Swap-Zuordnung. Die via [H] aufrufbare Hilfe offenbart die Farbzuordnung: So steht bei der CPU-Auslastung Blau für via Nice-Wert herunterpriorisierte sowie Grün für "normale" Benutzer-Prozesse, Rot markiert Kernel-Threads. Bei der Speicherauslastung steht Grün für verwendet, Blau für Blockgeräte-Puffer und Gelb für Caches. Auf der rechten Seite stehen die Anzahl der Prozesse, die Durchschnittslast und die Uptime. In der Prozessliste zeigt Htop ähnliche Angaben wie Top.

Abbildung 3: Htop zeigt eindrücklich, wie stark kurzfristig ein Abrufen weniger Mails von POP3-Konten Kdepim aus KDE SC 4.13.2 und aktuellem Entwicklungsstand das System belastet.

Um einem Prozess ein Signal zu senden, drücken Sie [F9]. Anders als bei Top müssen Sie dabei nicht die PID angeben: Htop spricht den aktuell in der Liste ausgewählten, farblich hinterlegten Prozess an. Mit [F7] oder [F8] verringern oder erhöhen Sie den Nice-Wert des Prozesses. Allerdings wechselt Htop je nach Sortierung beim Aktualisieren der Anzeige den aktuell ausgewählten Prozess – es sei denn, Sie drücken [Umschalt]+[F], um den Prozess in der Ansicht zu verfolgen. Alternativ markieren Sie den Prozess mit der Leertaste, um dieses Verhalten zu umgehen. So kann Htop anders als Top auch mit mehreren Prozessen arbeiten, indem Sie alle gewünschten Prozesse markieren. Mit [Umschalt]+[U] löscht Htop die Auswahl wieder.

Mit [F3] suchen Sie nach Prozessen. Mit [F4] filtern Sie die Liste permanent nach Prozessen mit einem bestimmten Namen und mit [U] nach Benutzern. Htop zeigt standardmäßig auch Threads an. So taucht ein MySQL-Server mit all seinen Threads in der Liste auf. Zwischen der sortierten und einer Baumansicht wechselt Htop mit der Taste [F5]. Das Sortieren nach einem anderen Feld gelingt mit [F6] – es sei denn, Htop befindet sich in der Baumansicht, in der die Taste einen Teilbaum auf- oder zuklappt. Auch Htop kennt die Kommandos [Umschalt]+[C],[Umschalt]+[M] und [Umschalt]+[T] für das Sortieren nach CPU-Last, Speicherauslastung und CPU-Zeit.

Permanente Änderungen an den Einstellungen – Htop schreibt sie in die Datei ~/.config/htop/htoprc – gelingen mit [F2]. Dort legen Sie auch fest, welche Anzeigen (Meters) Htop im Kopf der Ansicht zeigt. Unter Display options verstecken Sie beispielsweise mit Hide userland threads die Benutzer-Threads oder zeigen mit dem Abwählen von Hide kernel threads auch die Kernel-Threads noch mit an. Das gelingt alternativ auch mit den Tasten [Umschalt]+[K] und [Umschalt]+[H]. Unter Colors stehen diverse Farbschemata zur Wahl, wie etwa das für hellen Hintergrund gut geeignete Schema Light Terminal. Die Felder der Prozessliste richten Sie unter Columns ein. Dort gibt es beispielsweise auch Felder für den I/O-Durchsatz, den ein Prozess verursacht (Abbildung 4).

Abbildung 4: Auch Htop bietet eine komfortable Konfiguration der in der Prozessliste anzuzeigenden Felder.

Für die tiefere Analyse von Prozessen hat Htop ein paar nette Extras an Board: So hängt das Programm mit [S] den Befehl strace an den aktuellen Prozess an. So sehen Sie nach, welche Systemfunktionen der Prozess aufruft. Mit der Taste [F8] aktivieren Sie dabei das automatische Herunterrollen, um den Trace zu verfolgen. Mit [Umschalt]+[L] verwendet Htop den Befehl ltrace für den Aufruf von Bibliotheksfunktionen, mit [L] erhalten Sie eine Liste der gerade geöffneten Dateien. Die beiden erwähnten Befehle setzen voraus, dass die entsprechenden Pakete installiert sind.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 8 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 10/2017: Daten retten & sichern

Digitale Ausgabe: Preis € 8,50
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 2 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...
Backup mit KUP unter Suse 42.3
Horst Schwarz, 24.09.2017 13:16, 3 Antworten
Ich möchte auch wieder unter Suse 42.3 mit Kup meine Backup durchführen. Eine Installationsmöglic...
kein foto, etc. upload möglich, wo liegt mein fehler?
kerstin brums, 17.09.2017 22:08, 5 Antworten
moin, zum erstellen einer einfachen wordpress website kann ich keine fotos uploaden. vom rechne...
Arch Linux Netzwerkkonfigurationen
Franziska Schley, 15.09.2017 18:04, 0 Antworten
Moin liebe Linux community, ich habe momentan Probleme mit der Einstellung des Lan/Wlan in Arc...