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 wiesaXX(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%utilsich 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
- Daten sammeln: Führen Sie
sysstatfür 1-2 Wochen während typischer Hochlast- und Niedriglastperioden aus. - 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. - Schwellenwerte definieren: Jede anhaltende Abweichung (z.B. eine Verdopplung von
%iowaitoder ein Absinken von%idleunter 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. Hoherawaitdeutet 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.