Mit Dstat wichtige Systemparameter analysieren

© Alexej Kuzin, 123RF

Kompletter Überblick

Wenn der Rechner lahmt, dann hilft Ihnen Dstat, die Ursache zu finden.

Linux-Anwendern steht ein großes Repertoire an Werkzeugen bereit, die einen Blick auf die aktuelle Auslastung der Systemressourcen zulassen. Ifstat, Iostat, Vmstat, Netstat – diese Programme haben Sie eventuell schon einmal benutzt. Während solche Tools entweder nur Teile der gewünschten Parameter anzeigen oder sich gezielt an Profis richten, wendet sich das umfassende Werkzeug Dstat [1] sowohl an Einsteiger wie erfahrene Administratoren. Dabei sorgt eine strukturierte und farbige Ausgabe für Durchblick. Mit ein wenig Übung spüren so selbst unerfahrene Anwender Prozesse auf, die besonders viel Last erzeugen.

Die Software stammt hauptsächlich aus der Schmiede des Belgiers Dag Johan Maarten Wieërs, der es in der Skriptsprache Python entwickelt hat. Ursprünglich war es dazu gedacht, die Funktionen der bekannten Tools Ifstat [2], Iostat [3], Netstat [4] und Vmstat [5] unter einem Dach zu vereinen. Der Anwender sollte mit einem Blick sehen, was sich bei Netzwerk, Massenspeicher und RAM tut. Mittlerweile beinhaltet das Tool allerdings zahlreiche Erweiterungen, die Metriken zu vielen verschiedenen Anwendungen zeigen. Während der Kernel die gängigen Messwerte in der Regel durch das virtuelle Proc-Dateisystem bereitstellt, liest die Software die Messwerte aus Anwendungen mit eigenen Modulen aus.

Das Programm steht für alle gängigen Distributionen als Binärpaket zur Installation bereit. Gegebenenfalls binden Sie zusätzliche Quellen aus der Community ein, falls Sie das Paket nicht in den Repositories der von Ihnen verwendeten Distribution finden.

Einfach, aber mächtig

Auf Debian-basierten Systemen wie Raspbian ziehen Sie das Paket dstat einfach über das Kommando sudo apt-get install dstat nach, falls es noch nicht von Haus aus installiert ist. Auch unter anderen Distributionen trägt das fragliche Paket meist denselben Namen und lässt sich bequem über den jeweiligen Paketmanager einrichten.

Standardmäßig legt das Debian-Paket das Programm unter /usr/bin/ ab. Die Module, die die eigentliche Funktionalität liefern, finden sich meist in /usr/share/dstat/. Wann immer Sie die Software aufrufen, greift sie auf Module aus diesem Verzeichnis zurück. Möchten Sie eine eigene Erweiterung für das Programm schreiben, finden Sie in diesem Verzeichnis viele hilfreiche Beispiele dazu.

Dstat verfügt über zahlreiche Optionen, mit denen Sie gezielt nur die Informationen auslesen, die gerade relevant erscheinen. Rufen Sie das Werkzeug ganz ohne zusätzliche Angaben auf, verhält es sich so, als ob Sie die Optionen -c, -d, -n, -g und -y kombiniert hätten (Abbildung 1). Mehr Informationen zur Verwendung der verschiedenen Optionen erhalten Sie beim Aufruf der Manpage mit man dstat (siehe auch Tabelle "Dstat-Schalter").

Abbildung 1: Rufen Sie Dstat ohne Parameter auf, liefert es einen Satz von Werten, anhand derer Sie möglicherweise schon erste Engpässe identifizieren.

Das Programm zeigt die gewünschten Werte in Form einer Tabelle an und hält dabei feste Breiten für die Spalten ein. Die Wahl der Farben ist für dunkle Hintergründe optimiert. Optional schalten Sie mit --bw auf ein Schema für helle Hintergründe oder mit --nocolor gleich ganz auf einfarbige Darstellung um.

Die erste Ausgabezeile bestätigt noch einmal die implizit aktivierten Schalter, während die Zeile darunter die fünf großen Bereiche nennt, hinter denen die einzelnen Optionen stecken. In unserem Beispiel aus Abbildung 1 zeigt das Programm also Metriken an, die sich auf den Zustand von CPU, Festplatte, Netzwerk und Speicher beziehen.

Das System im Test befand sich zu diesem Zeitpunkt nahezu im Leerlauf. Der Einsatz der Farbe Rot, wie bei den letzten Spalten in Abbildung 1, zeigt daher kein Problem auf, sondern dient nur der besseren Übersicht. Dstat verwendet allerdings den Wechsel von Farben innerhalb der gleichen Spalte zur Anzeige von Änderungen, wie dem Umschalten von Leerlauf auf Volllast. Die Farbe Grün zeugt daher nicht unbedingt von einem "gesunden" Zustand, das Programm wählt sie manchmal ganz willkürlich.

Möchten Sie das Programm beenden, genügt dazu die Tastenkombination [Strg]+[C]. Wissen Sie bereits vorab, wie viele Sekunden das Programm laufen soll, geben Sie ihm das entsprechend beim Aufruf mit. So läuft es nach dem Aufruf dstat 1 5 für fünf Sekunden, wobei es die Ausgabe im Intervall von einer Sekunde aktualisiert.

Dstat-Schalter

Schalter

Funktion

-c

zeigt CPU-Metriken

-d

gibt Bandbreite für Disk-Nutzung aus

-g

aktiviert Paging-Statistiken

-l

Load-Average laut Linux-Kernel

-m

zeigt Werte für das RAM an

-n

gibt Bandbreite des Netzdurchsatzes aus

-s

aktiviert Swapping-Statistiken

-y

Ausgabe wichtiger Systemwerte

--disk-tps

Anzahl der Disk-Operationen pro Sekunde

--net-packets

Anzahl der Pakete, die über die Netzwerkschnittstellen laufen

--thermal

liest Temperatursensoren aus

--top-cpu

zeigt den Prozess mit der höchsten CPU-Last

--top-io

zeigt Anwendung mit dem höchsten Festplattendurchsatz

--top-mem

zeigt Anwendung mit dem höchsten Speicherverbrauch

--bw

aktiviert ein anderes Farbprofil

--nocolor

deaktiviert alle Farben

Prozessor im Blick

Bei der Überprüfung, warum das eigene System gerade langsamer als gewohnt reagiert, ist neben dem Aufruf ohne Parameter ein gezielter Blick auf die CPU-Metriken sinnvoll. Dazu rufen Sie Dstat folgendermaßen auf:

$ dstat -c -y -l --proc-count --top-cpu

In Abbildung 2 sehen Sie erneut die bereits bekannten Bereiche CPU und System (jeweils mit -c sowie -y). Weiterhin zeigt das Dstat die Entwicklung der Load (-l) an sowie diejenigen Prozesse, die am meisten CPU-Ressourcen verbrauchen (--top-cpu).

Abbildung 2: Neben gängigen CPU-Metriken zeigt das Beispiel den Prozess, der am meisten Rechenzeit beansprucht.

Das Werkzeug fasst übrigens die Auslastung aller CPUs zusammen, wenn das System über mehrere Prozessoren und Kerne verfügt. Wünschen Sie eine detaillierte Ansicht, greifen Sie auf den Schalter -C zurück, dem Sie eine kommaseparierte Liste der zu überwachenden Cores mitgeben.

Die erste Spalte der CPU-fixierten Ausgabe beschreibt die für Messwerkzeuge typischen Werte: usr und sys geben an, wie viel Prozent der genutzten CPU-Zeit die Programme im User- beziehungsweise Kernel-Space jeweils verbrauchen, während idl die Gesamtheit aller ungenutzten CPU-Ressourcen beschreibt (ebenfalls wieder in Prozent).

Besonders der letzte Wert besitzt bereits eine gewisse Aussagekraft – fällt relativ hoch aus, befindet sich das System im Leerlauf. Die Werte unter dem Kürzel wai hingegen zeigen auf, ob Programme derzeit warten. Tauchen hier hohe Zahlen auf, gibt es möglicherweise irgendwo einen Flaschenhals.

Die Kürzel hiq und siq stehen für die Anzahl der Interrupts durch Hardware oder Software. Eine hohe Anzahl an Interrupts deutet auf eine starke Nutzung des Systems hin, muss aber nicht zwingend ein Problem darstellen.

Der Systembereich gliedert sich in die Spalten int für die Gesamtzahl aller Interrupts und csw für Kontextumschaltungen auf. Bei Letzteren handelt es sich um Vorgänge, bei denen die CPU das Ausführen eines Prozesses zugunsten eines anderen Vorgangs pausiert (Multitasking). Fällt diese Zahl deutlich höher aus als sonst, ist das System womöglich aus Sicht der CPU mit dem Abarbeiten der anstehenden Aufgaben überfordert. Das gilt aber nur, wenn der zuvor genannte Idle-Wert nahe bei null liegt.

Der dritte große Bereich load-avg bezeichnet die ermittelte Systemauslastung aus Sicht des Kernels für die letzten 60 Sekunden, fünf Minuten und 15 Minuten. Der Load-Wert dient unter Linux als gängiger Indikator, ob ein System überlastet ist oder sich im Leerlauf befindet. Die Software ermittelt die Werte, in dem sie prüft, wie viele Prozesse auf einer bestimmten CPU auf Rechenzeit warten. Die nächste Spalte proc hat damit nur bedingt zu tun, da sie nur besagt, wie viele Prozesse gerade laufen.

Die letzte Spalte mit der Kennung most-expensive zeigt, welcher Prozess gerade die meisten CPU-Ressourcen verschlingt. Solange die Load kleiner ausfällt als die Anzahl der zur Verfügung stehenden Kerne, befindet sich der Rechner eher im Halbschlaf. Bei einer Load von mehr als dem Doppelten der vorhandenen Cores läge jedoch ein Problem vor – die CPU käme mit dem Abarbeiten nicht mehr hinterher.

Bei allen Angaben in einer Zeile handelt es sich um eine Momentaufnahme für den Zeitrahmen der letzten Sekunde. Treten beim Betrachten der CPU-Metriken Überraschungen auf, lohnt sich ein genauerer Blick auf die Speicherauslastung.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

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

Raspberry Pi Geek kaufen

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

Deutschland

Aktuelle Ausgabe

01/2017
Perfekter Mini-Server

Diese Ausgabe als PDF kaufen

Preis € 12,80
(inkl. 19% MwSt.)

Neuigkeiten

  • Neues auf der Heft-DVD

    Nur mit dem optimalen System und der richtigen Software nutzen Sie das volle Potenzial Ihres Mini-PCs. Mit der Heft-DVD erhalten Sie nicht nur die neusten Distributionen für den RasPi, sondern auch die passenden Programme und Schaltpläne zu den Artikeln.

  • Mehr Präzision

    Wenn es beim Messen auf hohe Genauigkeit ankommt, brauchen Sie einen A/D-Wandler wie den ADC128D818. Er bringt einige interessante Funktionen mit.

  • Alles in einer Reihe

    Wer mehr als eine serielle Schnittstelle am Mikrocontroller braucht, dem hilft eine in Software implementierte Lösung auf elegante Weise weiter.

  • Netzwerkfähig

    Trotz fehlender Netzwerkanbindung fand der 5-Dollar-Computer Raspberry Pi Zero reißenden Absatz. Der Pi Zero W legt nun mit WLAN und Bluetooth das nach, was sich viele Fans schon lange wünschten.

  • Brückenbau

    Der Pi Zero ist klein und kostengünstig, doch ihm fehlt ein Netzwerkanschluss. Den rüsten Sie bei Bedarf leicht nach.

  • Superkodi

    Der RasPi dient vielen Nutzern als kleines, aber feines Mediacenter zum Aufrüsten eines "dummen" Fernsehers zum Smart-TV. Das Update auf Kodi 17.0 bringt neben einem neuen Look auch eine überarbeitete Streaming-Funktion mit.

  • Gut gefiltert

    Mit Unbound sorgen Sie für blitzschnelle Antworten auf DNS-Anfragen – und sperren bei Bedarf lästige Web-Werbung aus.

  • Out of the box

    Wer einen RasPi-Server in den eigenen vier Wänden aufbauen möchte, muss nicht nur die Software installieren und einrichten, sondern auch das Netzwerk entsprechend konfigurieren. Syncloud nimmt Ihnen diese Arbeit komplett ab.

  • Facelifting

    Mit GTK+ realisieren Sie ohne großen Aufwand effiziente und gefällige grafische Frontends für Ihre Raspberry-Pi-Programme.

  • Praktisch verpackt

    Packen Sie wichtige Anwendungen einfach in einen Container, den Sie komfortabel mit Docker verwalten.