Swap und Arbeitsspeicher unter Linux: free, top und zram
Kurz: Linux nutzt freien Speicher als Cache und lagert selten genutzte Daten bei Bedarf in Swap aus; mit free, top und vmstat erkennt man echten Speichermangel, zram und swapfile helfen.
Genauer: Ein häufiger Schreck: free zeigt fast keinen freien Speicher. Das ist normal, denn Linux füllt ungenutzten RAM mit Datei-Cache (Page Cache), den es bei Bedarf sofort freigibt. Entscheidend ist verfügbarer Speicher (available).
Im Detail
Speicher lesen
free -h
# total used free shared buff/cache available
# Mem: 15Gi 4.2Gi 800Mi 300Mi 10Gi 10Gi
# Swap: 2.0Gi 0B 2.0Giavailable = was Programme bekommen könnten. Mit top/htop nach RES (tatsächlich belegt) sortieren; ps aux --sort=-%mem | head. vmstat 1 zeigt si/so (Swap-Ein-/Auslagerung): dauerhaft hohe Werte bedeuten Speichermangel (Thrashing). /proc/meminfo und smem liefern Details.
Swap
Swap (Partition oder Datei) nimmt selten genutzte Seiten auf, damit der RAM für aktive Daten bleibt, und ermöglicht Ruhezustand (Hibernate). Einrichten als Datei:
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile && sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstabSwappiness (vm.swappiness, Standard 60) steuert die Neigung auszulagern; für Desktops 10 bis 30 üblich. Swap auf SSD erhöht Verschleiß leicht, ist aber meist unkritisch.
zram und OOM
zram komprimiert Swap im RAM (Fedora, Ubuntu-Varianten, ChromeOS): schnell, ideal für kleine Rechner/Raspberry Pi. Ist Speicher und Swap erschöpft, greift der OOM-Killer und beendet Prozesse (Meldung im journalctl -k: „Out of memory: Killed process“). Gegenmittel: mehr RAM, Speicherfresser finden (Browser-Tabs, Speicherlecks), Limits setzen (systemd-run -p MemoryMax=2G, cgroups, Docker --memory), earlyoom/systemd-oomd für sanftes Eingreifen.
Tipps
- Server: Swap lieber vorhanden (kleine Menge) als gar keiner; Monitoring mit Alarm.
- Datenbanken vertragen Swapping schlecht (Redis nie auslagern).
- VMs/Container: Hostspeicher und Limits berücksichtigen.
- Beim Kauf/Aufrüsten: Mehr RAM bringt oft mehr als Swap.
- Hohe
buff/cacheist kein Problem;echo 3 > /proc/sys/vm/drop_cachesist selten sinnvoll.
Siehe auch: Speicherverwaltung und OOM-Killer, Virtueller Speicher und Paging, Task-Manager und Prozesse, Raspberry Pi