CH-J Server ManagerSerververwaltung über SSH
Menü
Alle Anleitungen und Artikel →

RAM, Cache und Swap auf einem Linux-Server richtig lesen

Was die Spalten von free bedeuten, warum hohe Speichernutzung oft unbedenklich ist und welche Anzeichen tatsächlich auf Speichermangel hinweisen.

available statt free betrachten

Linux nutzt ansonsten ungenutzten Speicher als Festplatten-Cache. Wenig freier Speicher ist auf einem gesunden Server daher normal. Die Spalte available enthält die Schätzung des Kernels, wie viel Speicher neue Aufgaben ohne Auslagern erhalten können. Diesen Wert sollten Sie beobachten. Wie used genau berechnet wird, hängt von der Werkzeugversion ab; vergleichen Sie den Wert daher nicht zwischen unterschiedlichen Systemen.

free -h
grep -E 'MemAvailable|Shmem:|SReclaimable' /proc/meminfo

Welcher Cache freigegeben werden kann

Der Page-Cache lässt sich normalerweise freigeben, wenn Anwendungen Speicher benötigen. Auch gemeinsam genutzter Speicher und tmpfs (Shmem) erscheinen unter Cache, lassen sich aber nicht einfach verwerfen: Sie enthalten Daten, von denen keine Kopie auf der Festplatte liegt. Ein großer Cache bei wenig verfügbarem Speicher deutet daher häufig auf ein großes tmpfs oder ein großes gemeinsam genutztes Speichersegment hin.

df -h -t tmpfs
sudo slabtop -o | head -15

Belegter swap ist nicht automatisch ein Problem

Ein Server kann selten genutzte Seiten wochenlang ohne Nachteile in swap halten. Schädlich ist das ständige Hin- und Herschieben. Beobachten Sie die Spalten si und so in vmstat: Dauerhaft über null liegende Werte bedeuten, dass das System aktiv ein- und auslagert. Das weist auf echten Speichermangel hin.

swapon --show
vmstat 1 5

Die Speicherverbraucher finden

Sortieren Sie Prozesse nach residentem Speicher. RSS zählt Seiten, die mehrere Prozesse gemeinsam nutzen, bei jedem dieser Prozesse mit. Die Werte mehrerer Prozesse lassen sich deshalb nicht einfach addieren. Werkzeuge mit PSS, etwa smem, liefern eine aussagekräftigere Summe, sofern sie installiert sind.

ps -eo pid,user,rss,comm --sort=-rss | head -15

Echten Speichermangel erkennen

Anzeichen sind wenig verfügbarer Speicher, ständiges Ein- und Auslagern sowie Prozesse, die der Out-of-Memory-Killer beendet. Prüfen Sie das Kernel-Protokoll. Führen Sie drop_caches nicht aus, um die Zahlen zu verschönern: Dadurch muss der Server lediglich erneut von der Festplatte lesen, ohne dass ein Problem gelöst wird.

sudo journalctl -k --no-pager | grep -iE 'out of memory|oom-kill'

Speicher in CH-J Server Manager

System Monitor liest diese Werte über SSH aus. Unter Linux definiert es used als MemTotal − MemFree − Buffers − Cached − SReclaimable und available als Schätzung des Kernels. Gemeinsam genutzter Speicher gehört zu Cached und ist nicht freigebbar; die Kategorien im Balken überschneiden sich nicht. Da die Formel von manchen Versionen von free abweicht, stimmen die Zahlen möglicherweise nicht genau überein. Auch swap wird mit seinem Nutzungsverlauf angezeigt. ZFS ARC wird nicht gesondert behandelt und zählt auf ZFS-Hosts deshalb als genutzter Speicher.

Ausführliche Dokumentation

man: free →

man: proc_meminfo →

Biometrisches Entsperren und Sicherheit →