Swap anlegen
Eine Swap-Datei als Puffer für knappen RAM, swappiness einstellen und prüfen.
3 Min. Lesezeit
Auf dieser Seite
Gilt für Debian 12/13, Ubuntu 22.04/24.04, AlmaLinux 9 und Rocky Linux 9.
Swap ist Platz auf der Platte, den Linux nutzt, wenn der RAM voll ist. Er ist viel langsamer als RAM, verhindert aber, dass der Kernel bei einer kurzen Spitze ein Programm hart beendet (Out of memory: Killed process …). Swap ersetzt keinen RAM: Braucht dein Server dauerhaft mehr, nimm ein größeres Paket.
1. Nachsehen, ob schon Swap da ist
swapon --show
free -hGibt swapon --show nichts aus und steht bei free in der Zeile Swap: überall 0B, hat der Server noch keinen.
2. Swap-Datei anlegen
Als Faustregel: so groß wie der RAM, höchstens 4 GB. Hier 2 GB:
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfilechmod 600 ist wichtig: Im Swap können Passwörter und andere Daten aus dem RAM landen.
3. Dauerhaft eintragen
Damit der Swap nach einem Neustart wieder da ist:
cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' >> /etc/fstabPrüf die Zeile, bevor du neu startest:
tail -n 3 /etc/fstab
findmnt --verifyfindmnt --verify darf keine Fehler melden. Ein Tippfehler in /etc/fstab kann den Start verhindern; dann hilft die Konsole im Dashboard, und die Sicherung /etc/fstab.bak liegt bereit.
4. swappiness einstellen
vm.swappiness sagt, wie früh Linux auslagert (0 bis 100, Standard 60). Für einen Server mit Swap als Notreserve ist 10 ein guter Wert:
echo 'vm.swappiness=10' > /etc/sysctl.d/99-swappiness.conf
sysctl --systemPrüfen, ob es geklappt hat
swapon --show
free -h
cat /proc/sys/vm/swappinessErwartet: /swapfile mit 2G in der Liste, in free eine Zeile Swap: mit 2.0Gi und 10 bei swappiness. Nach einem reboot müssen alle drei gleich aussehen.
Größe ändern oder entfernen
swapoff /swapfile
rm /swapfileZum Vergrößern danach Schritt 2 mit der neuen Größe wiederholen; die Zeile in /etc/fstab bleibt gleich. Zum Entfernen auch die Zeile /swapfile … aus /etc/fstab löschen.
swapoff braucht so viel freien RAM, wie gerade im Swap liegt. Ist er voll, erst Programme beenden.
Häufige Fehler
| Meldung | Ursache und Lösung |
|---|---|
swapon: /swapfile: insecure permissions 0644 | chmod 600 /swapfile. |
swapon: /swapfile: swapon failed: Invalid argument | Die Datei hat Lücken. Löschen und mit dd if=/dev/zero of=/swapfile bs=1M count=2048 statt fallocate neu anlegen, dann chmod, mkswap, swapon. |
fallocate: fallocate failed: No space left on device | Nicht genug Platz. df -h / zeigt den freien Speicher; kleinere Datei nehmen. |
| Server ist trotz Swap sehr langsam | Er lagert ständig aus. free -h und top prüfen; der RAM reicht dauerhaft nicht. |