Leistung beherrschen: Ein praktischer Leitfaden zur Nutzung des Sysstat-Toolsets

Schöpfen Sie das volle Potenzial der Linux-Leistungsüberwachung mit diesem praktischen Leitfaden zum Sysstat-Toolset aus. Erfahren Sie, wie Sie Sysstat für die historische Protokollierung installieren und konfigurieren und die Verwendung des leistungsstarken `sar`-Dienstprogramms beherrschen. Dieser Artikel bietet umsetzbare Befehlsbeispiele zur Analyse der CPU-Auslastung, des Speicherdrucks, der Disk-I/O-Sättigung und der Netzwerkaktivität, die es Administratoren ermöglichen, Leistungsgrundlagen zu etablieren und Systemengpässe in Produktionsumgebungen schnell zu diagnostizieren und zu beheben.

33 Aufrufe

Leistung meistern: Ein praktischer Leitfaden zur Verwendung des Sysstat-Toolsets

Leistungsüberwachung ist das Fundament einer zuverlässigen Linux-Systemadministration. Ohne robuste Tools zur Verfolgung der Ressourcenauslastung wird die Identifizierung von Engpässen zum Ratespiel, was zu ineffizienter Fehlerbehebung und reaktiver Skalierung führt. Die sysstat-Dienstprogrammsammlung ist das unverzichtbare, native Linux-Toolkit zum Sammeln, Analysieren und Berichten von Systemaktivitäten in allen kritischen Ressourcenbereichen.

Dieser Leitfaden bietet einen umfassenden Überblick über das sysstat-Toolset, wobei der Schwerpunkt hauptsächlich auf dem System Activity Reporter (sar) liegt. Wir werden Installation, Konfiguration für die historische Protokollierung und praktische Befehlsbeispiele behandeln, um Leistungs-Baselines zu erstellen und Ressourcenkonflikte in Echtzeit- und Post-Mortem-Analysen von CPU, Speicher, Disk-I/O und Netzwerknutzung zu identifizieren.


1. Installation und Erstkonfiguration von Sysstat

Das sysstat-Paket ist typischerweise in den Standard-Repositories aller gängigen Linux-Distributionen verfügbar.

1.1 Installationsbefehle

Verwenden Sie den passenden Paketmanager-Befehl für Ihr System:

Debian/Ubuntu:

sudo apt update
sudo apt install sysstat

RHEL/CentOS/Fedora:

sudo yum install sysstat
# or use dnf for newer systems
sudo dnf install sysstat

1.2 Historische Datensammlung aktivieren

Damit sar wirklich nützlich ist, muss es Daten historisch sammeln. Standardmäßig richtet die Installation oft einen cron job oder systemd timer ein, aber eine Überprüfung ist unerlässlich.

Stellen Sie auf modernen Systemen sicher, dass der sysstat-Dienst aktiv ist:

sudo systemctl enable --now sysstat

Konfigurationsdatei

Die Häufigkeit der Datensammlung wird durch Konfigurationsdateien gesteuert, die sich typischerweise unter /etc/default/sysstat (Debian/Ubuntu) oder /etc/sysconfig/sysstat (RHEL/CentOS) befinden. Suchen Sie nach der Einstellung ENABLED oder HISTORY. Die Einstellung ENABLED="true" gewährleistet die tägliche Datensammlung.

Tipp: Standardmäßig werden sysstat-Datendateien in /var/log/sa/ mit Dateinamen wie saXX (wobei XX der Tag des Monats ist) gespeichert.

2. Das Kern-Dienstprogramm: System Activity Reporter (sar)

sar ist die primäre Schnittstelle zur Anzeige von Statistiken. Es kann Echtzeitdaten anzeigen oder zuvor gesammelte historische Daten analysieren.

2.1 Grundlegende Syntax für die Echtzeitüberwachung

Die grundlegende Syntax ist darauf ausgelegt, spezifische Metriken in einem festgelegten Intervall für eine definierte Anzahl zu melden.

sar [options] [interval] [count]

Beispiel: Um allgemeine CPU-Statistiken alle 3 Sekunden, 10 Mal, zu melden:

sar -u 3 10
Option Beschreibung
-u CPU-Auslastung (Standard)
-r Speicher- und Paging-Statistiken
-d Blockgeräteaktivität (Disk I/O)
-n Netzwerkstatistiken (z.B. -n DEV für Schnittstellenstatistiken)
-q Run-Queue und Lastdurchschnitt
-W Swapping-Aktivität (Paging)
-A Alle Metriken (nützlich für umfassende Snapshots)

3. Wichtige Leistungsmetriken und praktische sar-Beispiele

Um die Ausgabe von sar zu verstehen, ist es notwendig zu wissen, welche Metriken die Leistung und den Systemzustand anzeigen.

3.1 CPU-Auslastung (sar -u)

Die CPU-Auslastung ist oft der erste Anlaufpunkt bei der Suche nach Engpässen. Eine hohe Auslastung in bestimmten Kategorien weist auf die Art der Arbeitslast hin.

sar -u 5 3
Metrik Beschreibung Engpass-Indikator
%user CPU-Zeit, die für die Ausführung von Prozessen auf Benutzerebene aufgewendet wird. Hoch deutet auf Anwendungs-/Dienstsättigung hin.
%system CPU-Zeit, die für die Ausführung von Kernel-/Systemaufgaben aufgewendet wird. Hoch deutet auf intensive Systemaufrufe oder Treiberprobleme hin.
%iowait CPU-Zeit, die im Leerlauf auf I/O-Operationen (Disk/Netzwerk) wartet. Hoch deutet auf einen I/O-Engpass hin, nicht auf CPU-Mangel.
%idle CPU-Zeit, die untätig wartet (verfügbar). Niedrig (z.B. < 5%) deutet auf CPU-Sättigung hin.

3.2 Speicher und Paging (sar -r und sar -W)

Speicherstatistiken zeigen sowohl den Verbrauch als auch, ob das System auf Swapping oder Paging zurückgreift.

Speicherauslastung (sar -r):

sar -r 1 5

Konzentrieren Sie sich auf kbavail (verfügbarer Speicher). Wenn kbmemfree niedrig ist, aber kbcached und kbbuffers hoch sind, wird der Speicher effizient durch den Caching-Mechanismus des Kernels genutzt.

Swapping-Aktivität (sar -W):

sar -W 1 5

Achten Sie auf pswpin/s (eingelagerte Seiten) und pswpout/s (ausgelagerte Seiten). Alle signifikanten Werte ungleich Null weisen hier darauf hin, dass das System aggressiv swappt, was auf Speicherdruck (einen starken Engpass) hindeutet.

3.3 Disk-I/O-Aktivität (sar -d)

Die Überwachung der Festplattenaktivität ist entscheidend für Datenbankserver oder stark genutzte Speichersysteme.

sar -d 3 5

Diese Ausgabe erfordert die Identifizierung der spezifischen Geräte (z.B. sda, vda). Wichtige Metriken sind:

  • tps: Transfers pro Sekunde (ein hoher Wert weist auf viele I/O-Anforderungen hin).
  • rd_sec/s & wr_sec/s: Datenmenge, die pro Sekunde gelesen/geschrieben wird.
  • %util: Prozentsatz der Zeit, in der das Gerät mit der Bearbeitung von Anfragen beschäftigt war. Wenn %util sich 100% nähert, ist das Speichersystem ausgelastet.

3.4 Netzwerkstatistiken (sar -n)

sar kann Aktivitäten über verschiedene Netzwerkschichten hinweg melden. Die häufigste Überprüfung ist die Schnittstellenaktivität (DEV).

sar -n DEV 5 1

Dieser Befehl zeigt Metriken wie rxpk/s (empfangene Pakete pro Sekunde) und txkB/s (übertragene Kilobytes pro Sekunde) für jede Netzwerkschnittstelle an. Verwenden Sie dies, um Schnittstellen zu identifizieren, die stark ausgelastet sind oder potenzielle Fehler aufweisen.

4. Historische Analyse und Baseline-Erstellung

Die wahre Stärke von sysstat liegt in seiner Fähigkeit, Systemaktivitäten über längere Zeiträume zu analysieren, was für die Festlegung von Leistungs-Baselines (was ist normal für Ihr System) unerlässlich ist.

4.1 Analyse vergangener Tage

Um an einem früheren Tag gesammelte Daten anzuzeigen, verwenden Sie das Flag -f, um den Pfad zur täglichen saXX-Datei anzugeben.

Beispiel: Um CPU-Statistiken vom 10. Tag des aktuellen Monats anzuzeigen:

sar -u -f /var/log/sa/sa10

Um Statistiken über ein bestimmtes Zeitfenster an diesem Tag zu überprüfen, fügen Sie die Flags -s (Startzeit) und -e (Endzeit) hinzu (im 24-Stunden-Format).

# Netzwerkstatistiken vom 10. von 14:00 bis 16:30 Uhr anzeigen
sar -n DEV -f /var/log/sa/sa10 -s 14:00:00 -e 16:30:00

4.2 Baselines festlegen

  1. Daten sammeln: Führen Sie sysstat für 1-2 Wochen während typischer Hochlast- und Niedriglastperioden aus.
  2. Normen identifizieren: Analysieren Sie historische Daten (sar -f), um die durchschnittliche CPU-Auslastung (%user, %system), die Spitzen-I/O-Latenz (%util) und die durchschnittliche Speichernutzung zu bestimmen.
  3. Schwellenwerte definieren: Jede anhaltende Abweichung (z.B. eine Verdopplung von %iowait oder ein Absinken von %idle unter 5% für mehr als 10 Minuten) relativ zu Ihrer Baseline deutet auf ein Leistungsproblem hin, das untersucht werden muss.

5. Unterstützende Sysstat-Tools

Während sar das übergeordnete Tool ist, enthält die sysstat-Suite spezialisierte Dienstprogramme, die fokussierte, detailreiche Berichte bieten.

5.1 iostat (Input/Output-Statistiken)

iostat liefert detaillierte Metriken, die speziell auf die Gerätenutzung ausgerichtet sind, besonders nützlich bei der Diagnose von Speicherengpässen.

# Disk-Statistiken alle 2 Sekunden, 4 Mal, inklusive erweiterter Statistiken (x) ausgeben
iostat -xd 2 4

Wichtige iostat-Metriken:

  • %util: Der Prozentsatz der CPU-Zeit, in der I/O-Anfragen an das Gerät gestellt wurden (entscheidender Indikator für Sättigung).
  • await: Die durchschnittliche Wartezeit (in Millisekunden) für I/O-Anfragen an das Gerät. Hoher await deutet auf eine langsame Speicherreaktion hin.

5.2 mpstat (Multiprozessor-Statistiken)

Wenn Sie CPU-Scheduling-Probleme oder eine ungleichmäßige Arbeitslastverteilung über die Kerne vermuten, liefert mpstat prozessorspezifische Nutzungsstatistiken, die sar -u aggregiert.

# Nutzung aller CPUs (A) alle 2 Sekunden anzeigen
mpstat -P ALL 2 1

Dies ist von unschätzbarem Wert, um Single-Thread-Anwendungen zu identifizieren, die einen einzelnen Kern auslasten, während andere untätig bleiben, oder um die Effizienz von Hyperthreading zu diagnostizieren.

Fazit

Das sysstat-Toolset ist ein grundlegendes Element der Linux-Leistungsoptimierung und Systemüberwachung. Durch die Beherrschung des sar-Dienstprogramms erhalten Systemadministratoren die Möglichkeit, über eine einfache Sofortüberwachung hinauszugehen und eine tiefgehende, historische Analyse des Ressourcenverbrauchs durchzuführen. Der regelmäßige Einsatz von sar zur Überwachung von CPU-, Speicher-, I/O- und Netzwerkaktivitäten, gekoppelt mit der Festlegung solider Leistungs-Baselines, verwandelt reaktive Fehlerbehebung in proaktives Systemmanagement und gewährleistet eine optimale Ressourcennutzung und Systemstabilität.