Swap ist Platz auf der Festplatte, auf den das System Daten aus dem RAM auslagert, wenn der Arbeitsspeicher knapp wird. Sie fügen ihn in wenigen Minuten hinzu, und dank ihm stürzt der VPS bei einer kurzen Spitze nicht ab. Wir zeigen auch, wann Swap nicht hilft und Sie mehr RAM brauchen.
Was Sie brauchen
- Ein StormHost-VPS mit Ubuntu 24.04 oder Debian 13
- Eine SSH-Verbindung als root (Anleitung)
- Freier Speicherplatz mindestens in der Größe des Swaps (prüfen mit
df -h /) - Etwa 10 Minuten
Was Swap ist und wann er hilft#
Wenn der RAM ausgeht und es keinen Swap gibt, startet der Linux-Kernel den OOM-Killer („out of memory“) und beendet den Prozess, der am meisten Speicher belegt. Meist ist das genau Ihre Datenbank, Ihr Gameserver oder Ihre Anwendung. Im Log finden Sie dann Out of memory: Killed process.
Mit Swap lagert das System zuerst selten genutzte Daten auf die Festplatte aus, und der Prozess läuft weiter.
| Situation | Hilft Swap? |
|---|---|
| Eine kurze Spitze (Updates, Kompilieren, ein Backup) | Ja, der VPS übersteht sie ohne Absturz. |
| Daten, die einmal geladen werden und dann herumliegen (ein Teil des Speichers einer Datenbank, ungenutzte Dienste) | Ja, er gibt RAM für das Wichtige frei. |
| Eine Anwendung braucht dauerhaft mehr RAM, als der VPS hat | Nein. Die Festplatte ist um ein Vielfaches langsamer als RAM, die Anwendung wird also langsamer. Die Lösung ist ein RAM-Upgrade. |
| Ein Gameserver (Minecraft, Rust) mit vollem Speicher | Nein. Der Server beginnt zu laggen. Geben Sie ihm weniger Speicher oder fügen Sie RAM hinzu. |
Aktuellen Zustand prüfen#
swapon --show
free -hswapon --show– listet aktiven Swap auf. Gibt er nichts aus, hat der VPS keinen Swap (bei einem neuen VPS ist das normal).free -h– zeigt die Auslastung von RAM und Swap in lesbaren Einheiten (-h= human readable).
Achten Sie in der Ausgabe von free -h auf die Spalte available in der Zeile Mem: wie viel Speicher den Anwendungen tatsächlich zur Verfügung steht. Die Zeile Swap zeigt Größe und Auslastung des Swaps.
Wie groß der Swap sein sollte#
| RAM des VPS | Empfohlener Swap | Warum |
|---|---|---|
| 2 GB | 2 GB | Ein kleiner VPS stößt am leichtesten ans Limit, die Reserve kommt also gelegen. |
| 4–8 GB | 2–4 GB | Genug, um Spitzen abzufangen. |
| 16 GB und mehr | 2–4 GB | Ein größerer Swap ergibt keinen Sinn. Wenn der VPS ihn wirklich nutzt, braucht er mehr RAM. |
Swap belegt Speicherplatz, machen Sie ihn also nicht unnötig groß.
Swap-Datei erstellen#
Das gilt für Ubuntu 24.04 und Debian 13. Als Beispiel erstellen wir einen 2-GB-Swap in der Datei /swapfile.
Erstellen Sie eine Datei der benötigten Größe:
bash fallocate -l 2G /swapfilefallocate– reserviert schnell Speicherplatz für eine Datei.-l 2G– die Dateigröße (2G= 2 GB; für 4 GB schreiben Sie4G)./swapfile– der Pfad zur Datei.
Setzen Sie die Berechtigungen so, dass nur root die Datei lesen kann. Swap kann Speicherfragmente mit Passwörtern enthalten:
bash chmod 600 /swapfile600– Lesen und Schreiben nur für den Besitzer (root), nichts für andere.
Bereiten Sie die Datei als Swap vor:
bash mkswap /swapfilemkswap– schreibt einen Swap-Header in die Datei. Es gibtSetting up swapspace version 1, size = 2 GiBaus.
Schalten Sie den Swap ein:
bash swapon /swapfileswapon– beginnt sofort, den Swap zu nutzen, aber nur bis zum nächsten Neustart.
Prüfen Sie das Ergebnis mit
swapon --show. Sie sehen die Zeile/swapfile file 2G.
Wenn swapon „holes“ meldet
Wenn swapon skipping - it appears to have holes ausgibt, hat das Dateisystem die mit fallocate erstellte Datei nicht akzeptiert. Löschen Sie sie (rm /swapfile) und erstellen Sie sie langsamer, aber zuverlässig mit dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress (count=2048 = 2048 × 1 MB = 2 GB). Fahren Sie dann mit Schritt 2 fort.
Dauerhaft aktivieren über /etc/fstab#
Damit sich der Swap auch nach einem Neustart einschaltet, tragen Sie ihn in die Datei /etc/fstab ein.
Sichern Sie die Datei:
bash cp /etc/fstab /etc/fstab.bakFügen Sie am Ende der Datei eine Swap-Zeile hinzu:
bash echo '/swapfile none swap sw 0 0' >> /etc/fstabecho '…'– gibt den Text in Anführungszeichen aus.>>– hängt den Text an das Ende der Datei an. Vorsicht: Ein einfaches>würde die ganze Datei überschreiben.
Was die einzelnen Spalten der Zeile bedeuten:
Spalte Wert Bedeutung 1. Gerät /swapfileDie Swap-Datei. 2. Einhängepunkt noneSwap wird nirgends eingehängt. 3. Typ swapEs ist Swap. 4. Optionen swStandardoptionen für Swap. 5. Dump 0Nicht mit dem alten Werkzeug dumpsichern.6. Prüfung 0Beim Booten nicht prüfen (Swap wird nie geprüft). Prüfen Sie, dass die fstab in Ordnung ist:
bash findmnt --verifyfindmnt --verify– prüft die Syntax von/etc/fstab. Das Ergebnis mussSuccess, no errors or warnings detectedsein oder eine Zusammenfassung mit0 parse errors, 0 errors. Bloße Warnungen (warnings) zu anderen Zeilen hindern den VPS nicht am Booten.
Eine beschädigte /etc/fstab kann den VPS am Booten hindern
Wenn der VPS nach einem Neustart nicht hochkommt, öffnen Sie die Browser-Konsole und stellen Sie die Sicherung mit cp /etc/fstab.bak /etc/fstab wieder her.
Swappiness: wie bereitwillig das System auslagert#
Der Wert vm.swappiness (0–200) gibt an, wie früh der Kernel beginnt, Daten in den Swap zu verschieben. Der Standard ist 60. Auf einem Server ist ein niedrigerer Wert besser, damit Swap hauptsächlich als Sicherheitsnetz dient.
| Einstellung | Was sie tut | Empfohlener Wert | Wann ändern |
|---|---|---|---|
vm.swappiness | Das Gleichgewicht zwischen dem Freigeben des Dateicaches und dem Verschieben von Prozessspeicher in den Swap. Eine niedrigere Zahl = weniger Auslagern. | 10 | Gehen Sie zurück auf 60 (den Standard), wenn der VPS bei vollem Speicher langsamer ist als zuvor. Der Wert 0 bedeutet nicht „Swap aus“; das System nutzt ihn nur im Notfall. |
Ermitteln Sie den aktuellen Wert:
bash cat /proc/sys/vm/swappinessSpeichern Sie den neuen Wert in einer eigenen Datei (Debian 13 liest
/etc/sysctl.confnicht mehr; der Ordner/etc/sysctl.d/funktioniert auf beiden Systemen):bash echo 'vm.swappiness=10' > /etc/sysctl.d/99-swappiness.confLaden Sie die Einstellung ohne Neustart:
bash sysctl --systemsysctl --system– lädt alle Einstellungen aus densysctl.d-Ordnern. In der Ausgabe sehen Sie die Zeilevm.swappiness = 10.
Überprüfung#
swapon --showzeigt/swapfilemit der richtigen Größe.free -hhat in der ZeileSwapeinen Werttotalungleich null.- Nach einem Neustart des VPS ist der Swap aktiv, auch ohne
swaponvon Hand auszuführen.
Swap entfernen#
- Schalten Sie den Swap aus:
swapoff /swapfile. Wird der Swap stark genutzt, dauert es länger, weil die Daten zurück in den RAM wandern. Reicht der RAM dafür nicht, endet der Befehl mit einem Fehler, und nichts passiert. - Löschen Sie die Zeile
/swapfile none swap sw 0 0aus der Datei/etc/fstab(nano /etc/fstab). - Löschen Sie die Datei:
rm /swapfile.
Fehlerbehebung#
fallocate: fallocate failed: No space left on device#
Auf der Festplatte ist nicht genug Platz. Prüfen Sie den freien Platz mit df -h / und wählen Sie einen kleineren Swap, oder erweitern Sie die Festplatte.
swapon: /swapfile: insecure permissions 0644, 0600 suggested.#
Die Berechtigungen der Datei sind zu offen. Der Swap schaltet sich ein, aber jeder auf dem VPS kann die Datei lesen. Führen Sie chmod 600 /swapfile aus.
swapon: /swapfile: swapon failed: Device or resource busy#
Der Swap ist bereits eingeschaltet. Prüfen Sie es mit swapon --show.
Der VPS ist auch mit Swap langsam und der Swap ist immer voll#
Die Anwendungen brauchen dauerhaft mehr Speicher, als der VPS hat. Finden Sie heraus, was Speicher belegt (htop, nach der Spalte MEM% sortieren), und geben Sie der Anwendung entweder weniger Speicher oder fügen Sie in der Registerkarte Tarif ändern RAM hinzu.
Zusammenfassung
- Swap schützt vor Abstürzen bei kurzem RAM-Mangel, ersetzt aber keinen RAM.
- Erstellen:
fallocate,chmod 600,mkswap,swapon. - Dauerhaft: die Zeile
/swapfile none swap sw 0 0in/etc/fstabund eine Prüfung mitfindmnt --verify. - Setzen Sie auf einem Server
vm.swappiness=10in/etc/.sysctl. d/ 99-swappiness. conf - Voller Swap und ein langsamer VPS bedeuten, dass Sie mehr RAM brauchen.