AA_control_alexej-kuzin_123rf_22943555.jpg

© Alexej Kuzin, 123RF

Mit Dstat wichtige Systemparameter analysieren

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 Netzwerk, Festplatten und Speicher tun. 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 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.)

LinuxCommunity kaufen

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

Deutschland

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 09/2017 PERFEKTE FOTOS

Digitale Ausgabe: Preis € 5,95
(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!

Aktuelle Fragen

WLan mit altem Notebook funktioniert nicht mehr
Stefan Jahn, 22.08.2017 15:13, 0 Antworten
Ich habe ein altes Compaq-6710b Notebook mit Linux Mint Sonya bei dem WLan neulich noch funktioni...
Würde gerne openstreetmap.de im Tor-Browser benutzen, oder zu gefährlich?
Wimpy *, 21.08.2017 13:24, 1 Antworten
Im Tor-Netzwerk (Tor-Browser) kann ich https://www.openstreetmap.de/karte.html# nicht nutzen....
Samsung VG-KBD1500 - Bluetooth-Tastatur mit Touchpad mit Xubuntu 16.04.2 LTS
Linux- & BSD-UserGroup im Weserbergland, 16.08.2017 19:16, 0 Antworten
Bin grad mit "meinem Latein am Ende" darum hier mal so in den Raum geworfen. Samsung VG-KBD1500 -...
Tails verbindet nicht mit WLan
Georg Vogel, 30.07.2017 15:06, 5 Antworten
Hallo zusammen! Habe mir von Linux Mint aus einen Tails USB-Stick erstellt. Läuft soweit gut,...
Genivi for Raspberry Pi 3
Sebastian Ortmanns, 28.07.2017 10:37, 1 Antworten
I try to build a Genivi Development Platform for Rasberry Pi 3. But I always get the failures bel...