Erstellen einer SWAP-Datei unter Linux

3 Min. Lesezeit

Der Swap ist ein Speicherbereich (oder eine Datei), der von Betriebssystemen genutzt wird, wenn der physische Arbeitsspeicher (RAM) voll ist oder langsam voll wird. Wenn in einem Linux-System der Arbeitsspeicher knapp wird, beginnt der Kernel, inaktive (seit längerer Zeit oder gar nicht genutzte) Speicherbereiche in den Swap-Bereich zu verschieben, um so Speicherplatz freizugeben.

Der SWAP-Bereich kann entweder eine dedizierte Swap-Partition oder eine Swap-Datei sein. In den meisten Fällen, in denen Linux auf einer virtuellen Maschine ausgeführt wird, ist keine dedizierte Swap-Partition vorhanden, sodass die einzige Möglichkeit darin besteht, eine Swap-Datei zu erstellen.

Die hier beschriebene Methode wurde unter Ubuntu 20.04, CentOS und AlmaLinux 8 getestet, funktioniert jedoch mit jeder modernen Linux-Distribution.

So fügen Sie eine Swap-Datei hinzu

Befolgen Sie die folgenden Schritte, um 1 GB Swap-Speicher einzurichten. Wenn Sie statt 1 GB 2 GB hinzufügen möchten, ersetzen Sie „1G“ durch „2G“ oder durch einen anderen Wert (z. B. „512M“ oder „4G“).

Zunächst erstellen wir eine Datei, die als SWAP-Bereich genutzt wird:

sudo fallocate -l 1G /swapfile

Falls der Befehl „fallocate“ nicht auf dem Rechner installiert ist oder die Fehlermeldung „fallocate failed: Operation not supported“ angezeigt wird, können Sie auch den Befehl „dd“ verwenden:

sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576

Nur der Root-Benutzer darf Lese- und Schreibrechte für die Swap-Datei haben. Legen Sie die entsprechenden Dateiberechtigungen fest:

sudo chmod 600 /swapfile

Mit dem Befehl „mkswap“ formatieren wir die Auslagerungsdatei:

sudo mkswap /swapfile

Aktivieren Sie die Verwendung der Auslagerungsdatei mit dem Befehl „swapon“:

sudo swapon /swapfile

Damit dies stets automatisch erfolgt, müssen Sie die Verwendung der Auslagerungsdatei in der Datei /etc/fstab konfigurieren. Öffnen Sie die Datei mit Ihrem bevorzugten Texteditor und fügen Sie Folgendes in einer neuen Zeile hinzu:

/swapfile swap swap defaults 0 0

Um zu überprüfen, ob der Swap-Bereich aktiv ist, können Sie den Befehl „swapon“ oder „free“ wie folgt verwenden:

sudo swapon --show

Ähnliche Beiträge sollten wir sehen:

NAME      TYPE SIZE   USED PRIO
/swapfile file   2G 530.8M   -2
Video: How to Create, Resize, or Extend a Linux Swap File | (Ubuntu) (SavvyNik, auf Englisch)

So stellen Sie den Swappiness-Wert ein

„Swappiness“ ist eine Eigenschaft des Linux-Kernels, die festlegt, wie häufig das System den Auslagerungsbereich nutzt. Der Wert dieses Parameters kann zwischen 0 und 100 liegen. Ein niedriger Wert veranlasst den Kernel, die Nutzung des Auslagerungsbereichs nach Möglichkeit zu vermeiden, während ein höherer Wert den Kernel dazu veranlasst, den Auslagerungsbereich aggressiver zu nutzen.

Auf den meisten Linux-Systemen ist der Standardwert 60, dies lässt sich jedoch auch manuell überprüfen:

cat /proc/sys/vm/swappiness

Als Ausgabe erhalten wir den aktuellen Wert:

60

Während ein Swap-Wert von 60 für die meisten Linux-Systeme ausreichend ist, kann es bei Produktionsservern vorkommen, dass ein niedrigerer Wert eingestellt werden muss.

Um beispielsweise den Austauschwert auf 10 zu setzen, führen Sie den folgenden sysctl-Befehl aus:

sudo sysctl vm.swappiness=10

Damit dieser Parameter bei Neustarts beibehalten wird, fügen Sie die folgende Zeile in die Datei /etc/sysctl.conf ein:

vm.swappiness=10

Der optimale „swappiness“-Wert hängt von der Systemauslastung und der Speicherauslastung ab. Dieser Parameter sollte in kleinen Schritten angepasst werden, um den optimalen Wert zu ermitteln.

Entfernen der Auslagerungsdatei

Wenn Sie die Auslagerungsdatei aus irgendeinem Grund deaktivieren und entfernen möchten, befolgen Sie bitte die folgenden Schritte:

Deaktivieren Sie zunächst den Swap-Bereich, indem Sie den folgenden Befehl eingeben:

sudo swapoff -v /swapfile

Dies kann unter Umständen viel Zeit in Anspruch nehmen, wenn die Auslagerungsdatei groß ist oder Ihr System langsam läuft. Wenn nicht genügend freier Arbeitsspeicher vorhanden ist, kann der Vorgang sogar fehlschlagen.

Im nächsten Schritt müssen Sie die Zeile, die mit „/swapfile“ beginnt, aus der Datei /etc/fstab entfernen.

Löschen Sie abschließend die eigentliche Swapdatei mit dem Befehl „rm“:

sudo rm /swapfile

Sollten Sie auf Probleme stoßen oder Feedback haben, wenden Sie sich bitte an uns!

Zurück zum Blog