sysstat ist eine Sammlung von Performance-Tools für Linux. Das Tool sar (System Activity Reporter) zeichnet Systemdaten auf und ermöglicht historische Analyse.
Installation
# Debian/Ubuntu
apt install sysstat
# RHEL/CentOS
dnf install sysstat
# Aktivieren
systemctl enable sysstat
systemctl start sysstatKonfiguration
Datensammlung aktivieren
# /etc/default/sysstat (Debian/Ubuntu)
ENABLED="true"
# Cron-Jobs prüfen
cat /etc/cron.d/sysstatSammel-Intervall
# /etc/cron.d/sysstat
# Alle 10 Minuten sammeln
*/10 * * * * root /usr/lib/sysstat/sa1 1 1
# Tägliche Zusammenfassung
53 23 * * * root /usr/lib/sysstat/sa2 -Asar - Grundlagen
CPU-Auslastung
# Aktuelle CPU-Statistiken (alle 2 Sekunden, 5 mal)
sar -u 2 5
# Ausgabe:
# %user %nice %system %iowait %steal %idle
# 15.00 0.00 3.00 1.00 0.00 81.00
# Heute
sar -u
# Gestern
sar -u -1
# Bestimmtes Datum
sar -u -f /var/log/sysstat/sa26Speicher
# RAM-Nutzung
sar -r 2 5
# Mit Swap
sar -S 2 5
# Ausgabe:
# kbmemfree kbmemused %memused kbbuffers kbcachedDisk I/O
# Disk-Statistiken
sar -d 2 5
# Alle Devices
sar -dp 2 5
# Ausgabe:
# DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %utilNetzwerk
# Netzwerk-Interfaces
sar -n DEV 2 5
# Netzwerk-Fehler
sar -n EDEV 2 5
# Sockets
sar -n SOCK 2 5
# TCP-Statistiken
sar -n TCP 2 5Load Average
# Load und Task-Statistiken
sar -q 2 5
# Ausgabe:
# runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15Historische Daten
Nach Datum abfragen
# Bestimmter Tag
sar -u -f /var/log/sysstat/sa25
# Zeitbereich
sar -u -s 08:00:00 -e 18:00:00
# Gestern
sar -u -1
# Vor 3 Tagen
sar -u -3Daten-Dateien
# Speicherort
ls -la /var/log/sysstat/
# saDD - Binärdaten (DD = Tag des Monats)
# sarDD - TextberichteWeitere Metriken
Prozess-Statistiken
# Context Switches
sar -w 2 5
# Prozess-Erstellung
sar -c 2 5Swap-Aktivität
# Swap In/Out
sar -W 2 5
# Bei hoher Aktivität: Speicher-Problem!Huge Pages
sar -H 2 5Power Management
# CPU-Frequenz
sar -m CPU 2 5Alle Metriken
# Alle Statistiken
sar -A 2 5
# Als Bericht
sar -A > system-report.txtsadf - Andere Formate
CSV-Export
# CSV für Excel/Datenbank
sadf -d /var/log/sysstat/sa26 -- -u > cpu.csv
# Mit Header
sadf -dh /var/log/sysstat/sa26 -- -uJSON-Export
# JSON-Format
sadf -j /var/log/sysstat/sa26 -- -u > cpu.jsonSVG-Grafiken
# SVG-Diagramm
sadf -g /var/log/sysstat/sa26 -- -u > cpu.svgWeitere sysstat-Tools
iostat
# Disk I/O-Statistiken
iostat -x 2 5
# Ausgabe:
# Device rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %utilmpstat
# CPU-Statistiken pro Core
mpstat -P ALL 2 5
# Einzelner Core
mpstat -P 0 2 5pidstat
# Prozess-Statistiken
pidstat 2 5
# Bestimmter Prozess
pidstat -p 1234 2 5
# CPU pro Prozess
pidstat -u 2 5
# Memory pro Prozess
pidstat -r 2 5
# Disk I/O pro Prozess
pidstat -d 2 5cifsiostat
# CIFS/SMB-Statistiken
cifsiostat 2 5Praktische Anwendungen
Performance-Problem analysieren
#!/bin/bash
# analyze-yesterday.sh
echo "=== CPU ==="
sar -u -1 | tail -5
echo -e "\n=== Memory ==="
sar -r -1 | tail -5
echo -e "\n=== Disk I/O ==="
sar -d -1 | tail -10
echo -e "\n=== Network ==="
sar -n DEV -1 | tail -10
echo -e "\n=== Load ==="
sar -q -1 | tail -5Peak-Zeiten finden
# Höchste CPU-Last
sar -u | sort -k3 -rn | head -10
# Höchste Disk-Auslastung
sar -d | sort -k10 -rn | head -10Täglicher Bericht
#!/bin/bash
# daily-report.sh
DATE=$(date +%Y-%m-%d)
REPORT="/var/log/sysstat/report-$DATE.txt"
echo "System Report for $DATE" > $REPORT
echo "========================" >> $REPORT
echo -e "\n=== CPU Summary ===" >> $REPORT
sar -u >> $REPORT
echo -e "\n=== Memory Summary ===" >> $REPORT
sar -r >> $REPORT
echo -e "\n=== Disk Summary ===" >> $REPORT
sar -dp >> $REPORT
# Email senden
mail -s "Daily System Report $DATE" admin@example.de < $REPORTLangzeit-Archivierung
# Alte Daten komprimieren
cd /var/log/sysstat
gzip sa[0-9][0-9]
# Rotation konfigurieren
# /etc/logrotate.d/sysstatZusammenfassung
| Befehl | Beschreibung | |--------|--------------| | sar -u | CPU-Auslastung | | sar -r | Speicher | | sar -d | Disk I/O | | sar -n DEV | Netzwerk | | sar -q | Load Average | | sar -W | Swap-Aktivität | | sar -A | Alle Metriken |
| Tool | Funktion | |------|----------| | sar | Historische Daten | | iostat | Disk I/O live | | mpstat | CPU pro Core | | pidstat | Pro Prozess | | sadf | Format-Konvertierung |
| Datei | Beschreibung | |-------|--------------| | /var/log/sysstat/saDD | Binäre Tages-Daten | | /etc/sysstat/sysstat | Konfiguration | | /etc/cron.d/sysstat | Sammel-Jobs |
Fazit
sysstat ist unverzichtbar für Performance-Analyse. Die automatische Datensammlung ermöglicht Rückblick auf Probleme. sar liefert detaillierte Systemmetriken. Die Integration mit Grafana via sadf erweitert die Visualisierung. Für Echtzeit-Monitoring ist htop oder Prometheus besser geeignet.