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
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!