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 sysstat

Konfiguration

Datensammlung aktivieren

# /etc/default/sysstat (Debian/Ubuntu)
ENABLED="true"

# Cron-Jobs prüfen
cat /etc/cron.d/sysstat

Sammel-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 -A

sar - 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/sa26

Speicher

# RAM-Nutzung
sar -r 2 5

# Mit Swap
sar -S 2 5

# Ausgabe:
# kbmemfree kbmemused  %memused kbbuffers kbcached

Disk 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  %util

Netzwerk

# 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 5

Load Average

# Load und Task-Statistiken
sar -q 2 5

# Ausgabe:
# runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15

Historische 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 -3

Daten-Dateien

# Speicherort
ls -la /var/log/sysstat/

# saDD - Binärdaten (DD = Tag des Monats)
# sarDD - Textberichte

Weitere Metriken

Prozess-Statistiken

# Context Switches
sar -w 2 5

# Prozess-Erstellung
sar -c 2 5

Swap-Aktivität

# Swap In/Out
sar -W 2 5

# Bei hoher Aktivität: Speicher-Problem!

Huge Pages

sar -H 2 5

Power Management

# CPU-Frequenz
sar -m CPU 2 5

Alle Metriken

# Alle Statistiken
sar -A 2 5

# Als Bericht
sar -A > system-report.txt

sadf - 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 -- -u

JSON-Export

# JSON-Format
sadf -j /var/log/sysstat/sa26 -- -u > cpu.json

SVG-Grafiken

# SVG-Diagramm
sadf -g /var/log/sysstat/sa26 -- -u > cpu.svg

Weitere 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 %util

mpstat

# CPU-Statistiken pro Core
mpstat -P ALL 2 5

# Einzelner Core
mpstat -P 0 2 5

pidstat

# 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 5

cifsiostat

# CIFS/SMB-Statistiken
cifsiostat 2 5

Praktische 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 -5

Peak-Zeiten finden

# Höchste CPU-Last
sar -u | sort -k3 -rn | head -10

# Höchste Disk-Auslastung
sar -d | sort -k10 -rn | head -10

Tä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 < $REPORT

Langzeit-Archivierung

# Alte Daten komprimieren
cd /var/log/sysstat
gzip sa[0-9][0-9]

# Rotation konfigurieren
# /etc/logrotate.d/sysstat

Zusammenfassung

| 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.