Aus Linux-Magazin 07/2011

Der System- und Prozess-Monitor Atop

© quintanilla, 123RF.com

Ein Server erledigt Aufgaben langsam, zu langsam. Liegt es an der CPU, am Hauptspeicher, Storage oder der Netzlast? Der System- und Prozess-Monitor Atop hilft bei der Analyse.

DELUG-DVD: Atop

Auf der DELUG-DVD dieses Magazins findet sich Atop in mehreren aktuellen Versionen als RPM und als Tarball. Dazu gibt es die im Artikel erwähnten Kernelpatches inklusive Dokumentation.

Gute Monitoringsoftware erkennt Engpässe automatisch, hebt die entdeckten Probleme für den Admin hervor und erstellt Berichte über den Verlauf von Performance-Messwerten – so sollte es sein. Dass es für derlei Echtzeitmonitoring und glaubwürdige Vorhersagen keiner komplexen Softwareprodukte bedarf, zeigt der AT Computing’s System & Process Monitor [1].

Atop besteht aus zwei Teilen: Dem eigentlichen Programm »atop« sowie einem Paket mit zwei optionalen Kernelpatches, die Informationen zum Disk-I/O und zum Netzwerkverkehr pro Prozess ermitteln. Gängige Distributionen liefern Atop als Paket mit – Debian allerdings nur in der veralteten Version 1.23. Für SLES und Suse stellt das Monitoring-Repository Pakete bereit [2]. Aktuell ist die Version 1.26, die unter anderem breitere Fenster besser nutzt sowie Softraid und LVM unterstützt.

Vorbereitung

Die beiden dafür notwendigen Kernelpatches (auf der DELUG-DVD) sind jedoch standardmäßig nicht installiert. Wer diese nutzen möchte, kommt nicht darum herum, einen Kernel selbst zu kompilieren und zu verteilen. Im Test funktionierte das neueste Patch für die Kernelversion 2.6.33 auch mit der Version 2.6.38 [3], auch für ältere Kernel bis zurück zur 2.6.16 stehen Patches bereit.

Sehr empfehlenswert vorab ist zudem die Lektüre einer Fallstudie zu einem speicherfressenden Prozess, die einen tiefen Einblick in die Arbeitsweise der Speicherverwaltung des Kernels gewährt und in Atop einführt [4]. Dazu passt ein Bash-Skript, das hilft Prozesse mit Memory Leaks zu erkennen [5].

Nach dem Start zeigt das Programm eine Ansicht mit allgemeinen Werten. Wie bei »top« besteht die Anzeige aus einem globalen Bereich und der Prozessliste. Im Kopfbereich zeigt Atop Informationen zu Prozessen, Prozessor, Load, Speicher inklusive Swap sowie zu Massenspeichergeräten und dem Netzwerk. Dabei denkt Atop mit: Das Programm färbt Ressourcen, die ausgelastet sind, türkis oder rot ein. So sieht der Systemadministrator auf einen Blick, wo der Engpass steckt. Die in der Datei »~/.atoprc« konfigurierbaren Grenzwerte erläutert die Manpage unter »COLORS« .

Informationsfülle

Die Top-Alternative zeigt viele Informationen zusätzlich. So gibt die Zeile Paging Frequency (»PAG« ) Auskunft darüber, wie stark der Kernel gerade nach freien Pages sucht oder auslagert. Auch die Angaben zum Disk-I/O und Netzwerktraffic kennt Top nicht. Zudem berücksichtigt Atop über das Process Accounting des Kernels die Ressourcen-Nutzung von Prozessen, die sich während eines Messintervalls beenden. Dabei schreibt der Kernel in eine Datei namens »/tmp/atop.d/atop.acct« . Der Benutzer sollte Atop daher nicht mit »SIGKILL« beenden, da es dann das Process Accounting nicht stoppen kann. Das Defaultverzeichnis unter »/tmp« birgt allerdings ein gewisses Sicherheitsrisiko [6].

Die Prozessliste umfasst in der mit der Taste [G] erreichbaren allgemeinen Ansicht Informationen wie die PID, System- und User-CPU-Auslastung, den physischen und virtuellen Adressraum, aber auch über gelesene oder geschriebene Daten (Abbildung 1). Dabei geben »VGROW« und »RGROW« an, wie viel zusätzlichen Adressraum der Prozess angefordert hat. Diese Information erweist sich in vielen Fällen als deutlich interessanter als die absoluten Werte.

Abbildung 1: Die Desktopsuche in KDE und das Kompilieren eines Kernels beschäftigen ein Fujitsu Lifebook S751 mit Intels I-7-2620M-Quadcore-Prozessor und Toshiba-SSD.

Abbildung 1: Die Desktopsuche in KDE und das Kompilieren eines Kernels beschäftigen ein Fujitsu Lifebook S751 mit Intels I-7-2620M-Quadcore-Prozessor und Toshiba-SSD.

Automatisch messen

Gewöhnlich sortiert Atop die Prozesse nach prozentualer CPU-Auslastung. Zudem zeigt es nur jene Prozesse, die wirklich gerade Ressourcen brauchen. Threads, die nur warten und daher in der Regel für die Performance-Analyse uninteressant sind, lässt das Programm außen vor. Die Taste [A] überredet Atop jedoch, alle Prozesse zu zeigen.

[Strg]+[F] und [Strg]+[B] blättern in der Prozessliste vorwärts und rückwärts. Mit [Shift]+[P] oder [Shift]+[U] nimmt Atop einen regulären Ausdruck entgegen, mit dem es entweder nach Prozess- oder Benutzernamen filtert. Per Default zeigt Atop alle 10 Sekunden die akkumulierten Messwerte seit der letzten Anzeige, ein anderes Intervall (0 für keine automatischen Updates) setzt [I].

Die Taste [T] löst eine sofortige Messung aus und [Z] pausiert automatische Updates. Werte, die nicht in eine Spalte passen, zeigt Atop in Exponential-Schreibweise. Mit [1] zeigt Atop, wie oft ein Vorgang passierte als Durchschnittswert pro Sekunde. Tabelle 1 zeigt einige der wichtigsten Tastenkürzel.

Tabelle 1: Tastenkombinationen

Tabelle 1: Tastenkombinationen

Ansichten

Daneben kennt Atop weitere Ansichten: So zeigt [M] die Hauptspeichernutzung mit Minor und Major Page Faults, absolutem physischen und virtuellen Adressraum sowie prozentualer Speichernutzung.

Die Anzeige des Disk-I/O mit der Taste [D] funktioniert jedoch erst ab Kernel 2.6.20 mit der Option »CONFIG_TASK_IO _ACCOUNTING« (Standard bei vielen Distributionen) oder mit einem zusätzlichen Patch. Mit einem Standardkernel zeigt Atop das gelesene und das geschriebene Datenvolumen sowie unter »WRDSK_CANCEL« zu schreibende Daten, die der Prozess gelöscht hatte, bevor der Kernel sie schrieb (Abbildung 2).

Abbildung 2: Atop zeigt die Disk-I/O-Werte beim Dist-Upgrade auf einem Thinkpad T42. Detailliertere Informationen gibt es mit Kernelpatch, einfacher installiert ist Atop jedoch ohne.

Abbildung 2: Atop zeigt die Disk-I/O-Werte beim Dist-Upgrade auf einem Thinkpad T42. Detailliertere Informationen gibt es mit Kernelpatch, einfacher installiert ist Atop jedoch ohne.

Mitunter löscht ein Prozess Daten, die ein anderer geschrieben hat. In Atop tauchen dann das geschriebene Datenvolumen »WRDSK« und »WRDSK_CANCEL« in verschiedenen Zeilen auf. Mit Kernelpatch zeigt Atop die Anzahl der Lese- und Schreib-Requests sowie deren durchschnittliche und gesamte Größe.

Die Anzeige des Netzwerktraffic pro Prozess (Abbildung 3) gelingt indes nur mit dem Kernelpatch »cnt« . Dann aber zeigt Atop auch die Anzahl der empfangenen und gesendeten TCP- und UDP-Pakete sowie deren Größe. Details zum Scheduling liefert [S]. So sieht der Admin genau, wie viele Threads eines Prozesses liefen (»TRUN« ) oder unterbrechbar (»TSLPI« ) oder ununterbrechbar (»TSLPU« ) warteten. Zudem fasst Atop Prozesse mit [P] nach Programmen zusammen, mit [U] nach Benutzern.

Abbildung 3: Nur mit gepatchtem Kernel zeigt Atop den Netzwerktraffic pro Prozess.

Abbildung 3: Nur mit gepatchtem Kernel zeigt Atop den Netzwerktraffic pro Prozess.

Sortieren

Je nach Ansicht sortiert Atop die Prozessliste nach prozentualer Prozessor-, Hauptspeicher-, Massenspeicher- oder Netzwerkauslastung. Tastenkombinationen steuern die Sortierung auch unabhängig von der Ansicht. Besonders interessant erscheint das Sortieren nach am meisten gebrauchten Ressourcen mit [Shift]+[A]. So zeigt Atop auf einen Blick, welche Prozesse den Engpass, also die am meisten in Anspruch genommene Ressource, wie stark auslasten.

So interessant diese Möglichkeiten für die Realtime-Performance-Analyse auch sind – wer möchte schon während der ganzen Zeit vor der Bildschirmanzeige sitzen und den Server beobachten? Hier kommt die Möglichkeit, mit Atopsar Berichte zu erstellen, gerade recht.

Atopsar

Das Debian-Paket richtet automatisch ein Init-Skript ein, das Atop auch in Abwesenheit Messwerte aufzeichnen und in einem Binärlog speichern lässt. Unkonfiguriert speichert Atop alle 10 Minuten akkumulierte Messwerte. Wer dies ändern möchte, passt im Init-Skript die folgende Zeile an:

DARGS="-a -w /var/log/atop.log 600"

Atopsar misst wahlweise in Realtime oder berichtet über gespeicherte Performance-Daten. So erstellt »atopsar -d 1 10« zehn Messungen der Diskauslastung, eine pro Sekunde.

Auch listet Atop nur genutzte Ressourcen – hilfreich bei vielen Laufwerken, CPUs oder Netzwerkkarten. Mit den entsprechenden, in der Manpage gut zusammengefassten Optionen zeigt Atopsar Berichte zu Prozessor, Hauptspeicher und zu Netzwerk-Werten.

Berichte erstellen

Gibt man mit »-b« und »-e« eine Anfangs- und Endzeit an, so schaut Atopsar in das Binärlog »/var/log/atop.log« . Eine andere Datei lässt sich mit »-r« angeben. Die Logrotate-Konfiguration in Debian hebt 14 Dateien auf, die jeweils einen Tag umfassen. Mit »-R« fasst Atop mehrere Werte zusammen, indem es deren Durchschnitt ausrechnet.

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-Netzwerktraffic verursachten (Abbildung 4). Bei Live-Messungen stehen diese Berichte nicht zur Verfügung.

Abbildung 4: Atopsar zeigt dem Anwender in einem Ausschnitt, womit das Thinkpad T42 des Autors beschäftigt war, hier beim Schreiben dieses Artikels.

Abbildung 4: Atopsar zeigt dem Anwender in einem Ausschnitt, womit das Thinkpad T42 des Autors beschäftigt war, hier beim Schreiben dieses Artikels.

Parseable Output – maschinenlesbare Ausgaben

Wer Informationen zu allen Prozessen oder anderen Werten möchte, dem stellt Atop mit der Option »-P« maschinenlesbare Ausgaben zusammen. Näheres dazu, zum Beispiel zur Reihenfolge der ausgegebenen Felder, erläutert die Atop-Manpage unter »PARSEABLE OUTPUT« . Zum Beispiel schreibt

atop -i 2 -P CPU,PRC,MEM,PRM,DSK,PRD >/tmp/prozesse.log

alle 5 Sekunden die CPU-, Speicher- und Diskauslastung allgemein sowie nach Prozessen aufgeschlüsselt in eine Textdatei. Zudem lassen sich beispielsweise mit

atop -r /var/log/atop.log.1 -b 14:00 -e 18:00

die Binärlogs von Atop auch im interaktiven Modus betrachten. Dabei funktionieren alle üblichen Tastenkombinationen. Die Taste [T] springt einen Messpunkt nach vorne, die Kombination [Shift]+[T] einen zurück. Zusätzlich mit der Option »-P« erstellt Atop aus einem Binärlog maschinenlesbare Textausgaben.

Fazit

Atop überzeugt bei der Realtime-Analyse, indem es Engpässe im System unmittelbar sichtbar macht. Die Integration einer Hauptspeicher- und Massenspeicher-Ansicht verschafft dem Admin einen Gesamtüberblick über das System. Denn oft liegt es eher am Storage als an der CPU, wenn ein Dienst langsam läuft.

Schade ist lediglich, dass die Netzwerk-Ansicht pro Prozess nur mit einem gepatchten Kernel funktioniert. Die Berichtsfunktionen eignen sich eher für die nähere Vergangenheit. Für Langzeit-Aufzeichnungen ergibt eine RRD-basierte Alternative wie Collectd mitunter deutlich mehr Sinn. (mfe)

Infos

  1. Atop: http://www.atoptool.nl
  2. Servermonitoring-Projekt für Suse: http://download.opensuse.org/repositories/server:/monitoring/
  3. Atop-Kernelpatches:http://atoptool.nl/downloadpatch.php
  4. Gerlof Langeveld, Jan Christiaan van Winkel, “Case study with atop, May 2010: memory leakage”: http://atoptool.nl/download/case_leakage.pdf
  5. Findleak im Archiv: http://atoptool.nl/download/atopscripts-1.1.tgz
  6. Teodor, Debian-Fehlerbericht 622794, “Atop: vulnerable to symlink attack via insecure /tmp directory or file”:http://bugs.debian.org/bug=622794

Der Autor

Martin Steigerwald arbeitet als Trainer, Consultant und Systemadministrator bei der Team(ix) GmbH in Nürnberg. Schwerpunkte seiner Tätigkeit sind Linux-Schulungen sowie die Konzeption, Installation und Wartung solider IT-Infrastruktur auf Basis von Debian Linux. Er hält bei mehreren Schulungsanbietern Trainings zum Thema Performance-Analyse und Tuning.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben