vmstat — Speicher, Swap und CPU live überwachen
Praxis-Guide zu vmstat: Speicher, Swap, I/O-Wait und CPU-Last im Sekundentakt überwachen und Engpässe früh erkennen.
vmstat (Virtual Memory Statistics) liefert dir in einer einzigen, kompakten Zeile den Puls deines Linux-Systems: Prozess-Queues, Speicher, Swap, Block-I/O und CPU-Auslastung auf einen Blick. Das Werkzeug gehört zum Paket procps-ng und ist ein reines Lese-Kommando – ideal, um Speicherdruck, Swapping oder I/O-Engpässe schnell aufzuspüren. Wichtig: Rufst du vmstat mit einem Intervall auf (z. B. vmstat 2), zeigt die erste Zeile den Durchschnitt seit dem Systemstart – erst ab der zweiten Zeile zählen die aktuellen Werte.
Grundlegende Nutzung
vmstat — Zeigt eine einzelne Momentaufnahme der Systemstatistik seit dem Systemstart.
vmstatvmstat INTERVAL — Zeigt fortlaufend alle INTERVAL Sekunden aktualisierte Statistiken.
vmstat 1vmstat INTERVAL COUNT — Zeigt die Statistik alle INTERVAL Sekunden, insgesamt COUNT Mal.
vmstat 1 10vmstat -w — Breite Ausgabe – breitere Spalten für große Werte.
vmstat -w 1vmstat -t — Hängt an jede Zeile einen Zeitstempel an.
vmstat -t 1Speicherstatistik
vmstat -s — Zeigt ausführliche Speicherstatistiken in Tabellenform.
vmstat -svmstat -S M — Zeigt Werte in Megabyte statt Kilobyte.
vmstat -S M 1vmstat -S k — Zeigt Werte in Kilobyte (Standard).
vmstat -S k 1vmstat -a — Zeigt aktiven und inaktiven Speicher statt Puffer und Cache.
vmstat -a 1Festplattenstatistik
vmstat -d — Zeigt Festplattenstatistiken: Lese-/Schreibvorgänge und I/O-Zeit pro Gerät.
vmstat -dvmstat -D — Zeigt eine zusammengefasste Festplattenstatistik.
vmstat -Dvmstat -p PARTITION — Zeigt die Statistik für eine bestimmte Partition.
vmstat -p sda1Weitere Optionen
vmstat -f — Zeigt die Anzahl der Forks (Prozesserzeugungen) seit dem Systemstart.
vmstat -fvmstat -n — Gibt die Kopfzeile nur einmal aus (nicht periodisch). Praktisch fürs Logging.
vmstat -n 1 60 > vmstat.logAusgabespalten erklärt
r (procs) — Anzahl lauffähiger Prozesse (warten auf die CPU). Hohe Werte = CPU-Engpass.
b (procs) — Anzahl der Prozesse im ununterbrechbaren Schlaf (meist I/O-wartend).
swpd (memory) — Menge des genutzten Swap-Speichers (KB). Ungleich null = Speicherdruck.
free (memory) — Menge des freien/ungenutzten Speichers (KB).
buff (memory) — Als Kernel-Puffer genutzter Speicher (KB).
cache (memory) — Als Page-Cache genutzter Speicher (KB).
si (swap) — Pro Sekunde von der Platte eingelagerter Speicher (KB/s). Ungleich null = aktives Swapping.
so (swap) — Pro Sekunde auf die Platte ausgelagerter Speicher (KB/s). Anhaltend ungleich null = Speicherdruck.
bi (io) — Pro Sekunde von Blockgeräten empfangene Blöcke.
bo (io) — Pro Sekunde an Blockgeräte gesendete Blöcke.
in (system) — Interrupts pro Sekunde.
cs (system) — Kontextwechsel pro Sekunde.
us (cpu) — Zeitanteil im User-Code (%).
sy (cpu) — Zeitanteil im Kernel-/System-Code (%).
id (cpu) — Leerlaufzeit (%). Niedrig = CPU ausgelastet.
wa (cpu) — Zeit im Warten auf I/O (%). Hoch = I/O-Engpass.
st (cpu) — Von der Hypervisor-Schicht „gestohlene“ Zeit (%). Ungleich null = Ressourcenkonkurrenz in der VM.
Typische Muster
vmstat -w 1 — Echtzeit-Systemüberblick mit breiten Spalten. Der Standardbefehl.
vmstat -w 1vmstat -S M -w 1 — Echtzeit-Überwachung mit Werten in Megabyte.
vmstat -S M -w 1vmstat 1 | awk '$7 > 0 || $8 > 0' — Beobachtet Swap-Aktivität (Spalten si/so ungleich null).
vmstat 1 | awk '$7 > 0 || $8 > 0'vmstat -n -t 1 3600 > vmstat.log — Protokolliert die Systemstatistik eine Stunde lang (1 Messung/Sek.).
vmstat -n -t 1 3600 > vmstat.logvmstat 1 | awk 'NR>2 && $1>4 {print "CPU overloaded: r="$1}' — Warnt, wenn die Zahl lauffähiger Prozesse die CPU-Anzahl übersteigt.
vmstat 1 | awk 'NR>2 && $1>4 {print "CPU overloaded: r="$1}' Fazit
vmstat ist eines der schnellsten Diagnosewerkzeuge überhaupt: ein Befehl, eine Zeile, und du weißt, ob dein System unter Speicher-, CPU- oder I/O-Druck steht. Merke dir die Schlüsselspalten: anhaltend positive si/so bedeuten echten Speicherdruck durch Swapping, eine dauerhaft hohe r-Queue deutet auf CPU-Mangel und hohe wa-Werte auf einen I/O-Engpass hin. Nutze immer ein Intervall wie vmstat 2 und ignoriere die erste Zeile, da sie nur den Durchschnitt seit dem Boot zeigt. Für Details zu einzelnen Geräten oder Prozessen kombinierst du vmstat mit iostat, free und top.
Weiterführende Links
- ubuntuusers-Wiki: Systemüberwachung – deutschsprachiger Überblick über Werkzeuge zur Systemüberwachung unter Linux
- manpages.debian.org: vmstat(8) – offizielle Handbuchseite aus dem Paket procps