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/meminfoWelcher 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 -15Belegter 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 5Die 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 -15Echten 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.