Top, Htop, Atop und Glances im Vergleich

Aus LinuxUser 08/2014

Top, Htop, Atop und Glances im Vergleich

© Alexey Kuznetsov, 123RF

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.

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.

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.

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.

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.

Atop

Der “AT Computing’s System & Process Monitor” besteht aus drei Teilen: Dem eigentlichen Top-artigen Programm Atop, das neben der Realtime-Anzeige auch in eine Protokoll-Datei aufzeichnen kann; dem Programm Atopsar, um aus Protokollen Berichte zu erstellen; und dem Dienst und Kernel-Modul Netatop, um den Netzwerkverkehr pro Prozess aufzuschlüsseln [6].

Gängige Distributionen liefern Atop als Paket mit – Debian allerdings in der veralteten Version 1.26. Für Suse sowie Red Hat und CentOS stellt das Monitoring-Repository die Version 1.27 als Paket bereit [7]. Wählen Sie das für die verwendete Suse-Version passende Verzeichnis und fügen Sie die URL mit zypper addrepo URL atop als Paketquelle hinzu.

Im Kopfbereich zeigt Atop Informationen zu Prozessen, Prozessor, Load, Speicher samt Swap sowie Massenspeichergeräten und dem Netzwerk (Abbildung 5). Dabei färbt es ausgelastete Ressourcen ein. So sehen Sie auf einen Blick, wo Flaschenhälse lauern. Die in der Datei ~/.atoprc konfigurierbaren Grenzwerte erläutert die Manpage unter COLORS. Zudem lässt Atop uninteressante Informationen weg, wie etwa nicht verwendete Ressourcen oder schlafende Prozesse. Erst ein Druck auf [A] fördert alle Prozesse zutage.

Abbildung 5: Atop mit Blick auf das Kompilieren von Kdepim. Zu erkennen ist eine gewisse Auslastung der CPU und der mSATA-SSD. Auch ein MySQL von Akonadi, das Kdepim mit Informationen versorgt, braucht einiges an CPU.

Abbildung 5: Atop mit Blick auf das Kompilieren von Kdepim. Zu erkennen ist eine gewisse Auslastung der CPU und der mSATA-SSD. Auch ein MySQL von Akonadi, das Kdepim mit Informationen versorgt, braucht einiges an CPU.

Atop liefert gegenüber Top zahlreiche Zusatzinformationen. So gibt die Paging-Frequency-Zeile (PAG) Auskunft darüber, wie stark der Kernel gerade nach freien Pages sucht oder auslagert. Außerdem gibt es Angaben zum Disk-I/O und Netzwerkverkehr. Zudem berücksichtigt Atop über die Kernel-Funktion Process Accounting anteilig auch die Ressourcennutzung von Prozessen, die sich während eines Messintervalls beenden. Dabei schreibt der Kernel in eine Accounting-Datei. Sie sollten Atop daher nicht mit SIGKILL beenden, da es sonst das Accounting nicht beenden kann. Innerhalb eines Messzeitraums beendete Prozesse markiert Atop mit spitzen Klammern.

Die Prozessliste umfasst in der über [G] erreichbaren allgemeinen Ansicht Informationen wie die PID, die System- und User-CPU-Auslastung, den physischen und virtuellen Adressraum sowie gelesene und geschriebene Daten. Dabei geben VGROW und RGROW an, wie viel zusätzlichen Adressraum der Prozess angefordert hat. Diese Information ist oft viel interessanter als die absoluten Werte.

Daneben kennt Atop weitere Ansichten: So zeigt [M] die Hauptspeichernutzung mit Minor und Major Page Faults, den absoluten physischen und virtuellen Adressraum sowie die prozentuale Speichernutzung. In dieser Ansicht sehen Sie das gelesene und geschriebene Datenvolumen sowie unter WRDSK_CANCEL zu schreibende Daten, die der Kernel aber nicht schrieb, da der Prozess sie vorher wieder löschte. Im Zusammenspiel mit Netatop zeigt Atop über [N] auch eine Liste nach Netzwerk-Nutzung [6].

Je nach Ansicht sortiert Atop die Prozessliste nach prozentualer Auslastung von Prozessor, Hauptspeicher, Massenspeicher oder Netzwerk. Tastenkombinationen steuern die Sortierung auch unabhängig von der Ansicht. Besonders interessant: Das Sortieren nach der am meisten gebrauchten Ressource mittels [A]. So zeigt Atop auf einen Blick, welche Prozesse die am meisten in Anspruch genommene Ressource – den Engpass – wie stark auslasten.

Messwerte aufzeichnen

Als besonders nützlich erweist sich die Fähigkeit von Atop, Messwerte aufzuzeichnen. In der Vorgabe tut es das alle zehn Minuten. Um das Intervall zu ändern, modifizieren Sie entweder im Init-Skript /etc/init.d/atop den in der ersten Zeile von Listing 1 gezeigten DARGS-Parameter oder in der Systemd-Dienst-Datei /etc/systemd/system/multi-user.target.wants/atop.service die ExecStart-Angabe aus der zweiten Zeile von Listing 1.

Listing 1

DARGS="-a -w /var/log/atop.log 600"
ExecStart=/bin/sh -c '/usr/bin/atop -a -w /var/log/atop/atop_$(date +%Y%m%d) 600'

Hier ändern Sie jeweils die Sekunden-Angabe 600 auf den gewünschten Wert. Alternativ starten Sie nur bei Bedarf ein Atop mit kürzerem Intervall: So zeichnet atop -w /var/tmp/mein-atop.log 10 mit einem 10-Sekunden-Intervall auf. Achten Sie dabei auf den belegten Speicherplatz auf der Platte.

Atopsar misst wahlweise in Echtzeit oder berichtet über gespeicherte Leistungsdaten. So erstellt atopsar -d 1 10 zehn Messungen der Plattenauslastung, eine pro Sekunde. Auch zeigt Atop nur genutzte Ressourcen – hilfreich insbesondere bei vielen verbauten Laufwerken, CPUs oder Netzwerkkarten.

Mit den entsprechenden, in der Manpage zusammengefassten Optionen zeigt Atopsar Berichte zu Prozessor, Hauptspeicher und netzwerkbezogenen Werten. Geben Sie über die Parameter -b und -e eine Anfangs- und Endzeit an, so schaut Atopsar stattdessen in das aktuelle Protokoll in /var/log/atop. Eine andere Datei lässt sich mit -r angeben.

Auch Atopsar erstellt Berichte nach Prozessen: So zeigen -O, -G, -D und bei gepatchtem Kernel -N jeweils die drei Prozesse, die am meisten Prozessorzeit, residenten Speicher, Disk-I/O oder IPv4/IPv6-Netzwerkverkehr verursachten. Bei Live-Messungen stehen diese Berichte jedoch nicht zur Verfügung.

Sehr interessant ist auch die Möglichkeit, mit Atop über die Option -r interaktiv eine Protokolldatei durchzublättern. Damit sehen Sie die aufgezeichneten Werte, als wären sie live. Mit [T] blättern Sie vor, mit [Umschalt]+[T] zurück.

Glances

Der Newcomer unter den Top-Programmen, das Python-Programm Glances, greift auf die Bibliothek psutil zurück, um Systeminformationen abzufragen [8]. Auf Debian “Jessie” oder “Sid”, Ubuntu ab 13.04 sowie Fedora installieren Sie das gleichnamige Paket. Für Suse gibt es beim OpenSuse Build Service ein passendes Paket [9].

Glances manuell installieren

Bis die Distributoren die gerade erst erschienene Version 2.0 paketieren, installieren Sie Glances alternativ via Python Package Index (PyPI). Dazu installieren Sie unter Debian, Ubuntu oder Suse das Paket python-pip und führen dann den Befehl pip install glances aus. Das Aktualisieren gelingt mit pip install --upgrade glances, mit pip uninstall glances psutil werden Sie das Programm wieder los. Bei einer Parallel-Installation mit dem Distributionspaket startet /usr/bin/glances die Distributionsversion und /usr/local/bin/glances oder einfach nur glances die via PyPI installierte Variante.

Zudem lässt sich Glances auch händisch installieren. Dazu laden Sie via Git die aktuellen Quellen (Listing 2, Zeile 1) und übersetzen diese (Zeile 2). Auch das Entfernen gelingt bei Bedarf manuell (Zeile 3).

Als besonderes Gimmick gibt es mit pip install bottle auch die Möglichkeit, die Ausgabe von Glances im Webbrowser anzuschauen. Ein Iceweasel in Version 30 genehmigte sich für die Ausgabe dann allerdings etwa 13 Prozent der Rechenleistung eines Kerns einer mit 2,5 GHz getakteten Intel-Sandybridge-CPU (i5-2520M).

Auch ansonsten gibt sich Glances vergleichsweise CPU-hungrig: Während Top, Htop und Atop in der CPU-Anzeige mit einem halben bis eineinhalb Prozent kaum auffallen, beansprucht Glances im Stand-Alone- oder Client-Server-Betrieb zwischen fünf und sechs Prozent bei einem Aktualisierungsintervall von drei Sekunden. Möchten Sie auch noch die in LM-Sensors eingerichteten Sensoren sehen, rufen Sie pip install PySensors auf.

Listing 2

$ git clone https://github.com/nicolargo/glances.git
$ sudo python setup.py install --record install.log
$ cat install.log | sudo xargs rm

Der Befehl glances startet das Programm im normalen Modus, glances -s schaltet dagegen in den Server-Betrieb. Dann lauscht Glances auf Port 61209 aller IP-Adressen des Systems nach Anfragen. Mit -B geben Sie eine IP-Adresse vor, mit -p einen anderen Port. Auf dem Client verbindet sich Glances mittels glances -c IP-Adresse mit dem Server. Mit der Option --password setzen Sie auf dem Server ein Passwort, das sie beim Verbinden auf dem Client wieder angeben müssen. So oder so wandern die Systemdaten jedoch unverschlüsselt über die Leitung.

Selbst bei einer Terminal-Größe von nur 80×24 Zeichen zeigt Glances eine ganze Reihe von Informationen an: Im Kopfbereich sehen Sie die CPU- und Speicher-Auslastung sowie die Systemlast (Abbildung 6). Auf der linken Seite gibt das Programm einen Überblick über die Netzwerk- und Disk-Transferraten sowie den Füllstand der Dateisysteme. Die Prozessliste stellt Glances auf der rechten Seite dar. In einem größeren Fenster gibt das Programm zusätzliche Details im Kopfbereich und in der Prozessliste aus, wie etwa Zusatzangaben zur CPU-Last, die insgesamt verbrauchte CPU-Zeit oder den Disk-I/O pro Prozess.

Abbildung 6: Kompakt und informativ: Auch mit 80x24 Zeichen zeigt Glances viele Informationen. Die Akonadi POP3-Resource lastet einen CPU-Kern aus, aber auch Glances selbst ist als <code srcset=

/usr/bin/python mit 5,7 Prozent vertreten.” width=”300″ height=”178″ /> Abbildung 6: Kompakt und informativ: Auch mit 80×24 Zeichen zeigt Glances viele Informationen. Die Akonadi POP3-Resource lastet einen CPU-Kern aus, aber auch Glances selbst ist als /usr/bin/python mit 5,7 Prozent vertreten.

Mit [C] sortieren Sie die Prozesse nach CPU-Zeit, mit [M] nach Speichernutzung, mit [I] nach Disk-I/O und mit [P] nach Name. Wie Atop sortiert Glances mit [A] nach der meist genutzten Ressource. Weitere Möglichkeiten für das Zeigen und Verstecken verschiedener Anzeigeelemente liefert die Hilfe ([H]).

Bei ausreichend großem Fenster zeigt Glances ein Ereignisprotokoll mit den letzten drei Warnungen oder kritischen Alarmen an. Die konfigurierbaren Grenzwerte für die Stufen OK, CAREFUL, WARNING und CRITICAL erläutert die Dokumentation. Der Export in eine CSV-Datei mittels des Kommandos:

$ glances --output-csv Datei

ermöglicht den Import von Werten in eine Tabellenkalkulation. Dabei verwendet Glances allerdings für die Spaltennamen ein anderes Trennzeichen als für die einzelnen Werte. Mit einem Komma und dem Pipe-Zeichen | erhalten Sie einen lesbaren Import.

Eine weitere nützliche Funktion von Glances stellt das in der Dokumentation unter Monitored Processes List erläuterte Monitoring von Prozessgruppen dar.

Fazit

Alle besprochenen Top-Varianten weisen spezifische Vor- und Nachteile auf. An Glances gefallen die kompakte Ansicht, das Ereignisprotokoll sowie der (Web-)Server-Betrieb. Bei Htop und Top sticht die weitreichende Konfigurierbarkeit in Bezug auf die angezeigten Felder heraus.

Persönlicher Favorit des Autors bleibt indes Atop, das immer genau das anzeigt, was gerade relevant ist, und das weglässt, was keine Rolle spielt. Insbesondere die Aufzeichnungsfunktion mit der Möglichkeit, Berichte zu erstellen und Aufzeichnungen nachträglich interaktiv durchzublättern, erweist sich als großer Pluspunkt. 

Glossar

Namespaces

Ein Namespace dient dazu, den darin laufenden Prozessen eine isolierte Sicht auf eine bestimmte Ressource zur Verfügung zu stellen. Linux unterstützt unter anderem Namespaces für Mounts, Prozess-IDs, Benutzer und Netzwerkeinstellungen.

Nice-Wert

Der Nice-Wert bestimmt die Priorität eines Prozesses. Dabei bedeutet ein niedriger Nice-Wert eine hohe Priorität. Die möglichen Werte reichen von -20 bis 19. Werte kleiner als null kann nur Root setzen. Ein Benutzer darf den Nice-Wert zudem immer nur erhöhen, niemals verkleinern.

Infos

[1] Procps: http://procps.sourceforge.net

[2] Procps-ng: https://gitorious.org/procps

[3] Htop: http://hisham.hm/htop

[4] Atop: http://atoptool.nl

[5] Glances: https://github.com/nicolargo/glances

[6] LAN-Monitoring: Frank Hofmann, Martin Steigerwald, “Findige Schnüffler”, LU 02/2014, S. 76, https://www.linux-community.de/31701

[7] Server-Monitoring-Projekt: http://download.opensuse.org/repositories/server:/monitoring/

[8] Glances-Dokumentation: https://github.com/nicolargo/glances/blob/master/docs/glances-doc.rst

[9] Glances-Paket beim OpenSuse Build Service: http://software.opensuse.org/package/glances

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 08/2014 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben