Swap ist ein Speicherplatz auf einer Festplatte, der verwendet wird, wenn der physische Speicher voll ist. Wenn einem Linux-System der Arbeitsspeicher ausgeht, werden inaktive Seiten aus dem Arbeitsspeicher in den Auslagerungsbereich verschoben.
Auslagerungsspeicher kann entweder eine dedizierte Auslagerungspartition oder eine Auslagerungsdatei sein. Normalerweise ist beim Ausführen einer virtuellen Debian-Maschine keine Auslagerungspartition vorhanden, sodass die einzige Option darin besteht, eine Auslagerungsdatei zu erstellen.
Dieses Tutorial führt Sie durch die Schritte zum Hinzufügen einer Auslagerungsdatei unter Debian 10 Buster.
Bevor Sie beginnen #
Obwohl möglich, ist es nicht üblich, mehrere Auslagerungsbereiche auf einer einzelnen Maschine zu haben. Um zu überprüfen, ob Ihre Debian-Installation bereits Swap aktiviert hat, führen Sie den folgenden Befehl aus:
sudo swapon --show
Wenn die Ausgabe leer ist, bedeutet dies, dass das System keinen Auslagerungsbereich hat.
Andernfalls, wenn Sie etwas wie das Folgende erhalten, haben Sie Swap bereits auf Ihrem Debian-System aktiviert.
NAME TYPE SIZE USED PRIO
/dev/sda2 partition 4G 0B -1
Um Swap zu aktivieren, muss der Benutzer, der die Befehle ausführt, über sudo-Berechtigungen verfügen.
Erstellen einer Auslagerungsdatei #
In diesem Beispiel erstellen und aktivieren wir 1G
von tauschen. Um einen größeren Swap zu erstellen, ersetzen Sie 1G
mit der Größe des gewünschten Auslagerungsbereichs.
Die folgenden Schritte zeigen, wie man Auslagerungsspeicher unter Debian 10 hinzufügt.
-
Erstellen Sie zuerst eine Datei, die für den Austausch verwendet wird:
sudo fallocate -l 1G /swapfile
Wenn
fallocate
nicht installiert ist oder Sie eine Fehlermeldung erhalten, die besagt:fallocate failed: Operation not supported
Sie können den folgenden Befehl verwenden, um die Auslagerungsdatei zu erstellen:sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
-
Nur der Root-Benutzer sollte in der Lage sein, die Auslagerungsdatei zu lesen und zu schreiben. Geben Sie den folgenden Befehl aus, um die richtigen Berechtigungen festzulegen:
sudo chmod 600 /swapfile
-
Verwenden Sie den
mkswap
Werkzeug zum Einrichten eines Linux-Auslagerungsbereichs für die Datei:sudo mkswap /swapfile
-
Aktivieren Sie die Auslagerungsdatei:
sudo swapon /swapfile
Um die Änderung dauerhaft zu machen, öffnen Sie
/etc/fstab
Datei:sudo nano /etc/fstab
und fügen Sie die folgende Zeile ein:
/etc/fstab/swapfile swap swap defaults 0 0
-
Überprüfen Sie, ob der Swap aktiv ist, indem Sie entweder
swapon
verwenden oderfree
Befehl wie unten gezeigt:sudo swapon --show
NAME TYPE SIZE USED PRIO /swapfile file 1024M 507.4M -1
sudo free -h
total used free shared buff/cache available Mem: 488M 158M 83M 2.3M 246M 217M Swap: 1.0G 506M 517M
Anpassen des Swapiness-Wertes #
Swappiness ist eine Linux-Kernel-Eigenschaft, die definiert, wie oft das System den Swap-Bereich verwendet. Swapiness kann einen Wert zwischen 0 und 100 haben. Ein niedriger Wert veranlasst den Kernel, zu versuchen, Auslagerungen zu vermeiden, wann immer dies möglich ist, während ein höherer Wert den Kernel veranlasst, den Auslagerungsbereich aggressiver zu nutzen.
Der voreingestellte Swappiness-Wert ist 60. Sie können den aktuellen Swappiness-Wert mit cat
überprüfen Befehl:
cat /proc/sys/vm/swappiness
60
Während der Swappiness-Wert von 60 für die meisten Linux-Systeme in Ordnung ist, sollten Sie für Produktionsserver einen niedrigeren Wert festlegen.
Um beispielsweise den Swappiness-Wert auf 10 festzulegen, geben Sie Folgendes ein:
sudo sysctl vm.swappiness=10
Um diesen Parameter über Neustarts hinweg persistent zu machen, hängen Sie die folgende Zeile an /etc/sysctl.conf
an Datei:
vm.swappiness=10
Der optimale Auslagerungswert hängt von Ihrer Systemauslastung und der Verwendung des Arbeitsspeichers ab. Sie sollten diesen Parameter in kleinen Schritten anpassen, um einen optimalen Wert zu finden.
Entfernen einer Auslagerungsdatei #
Führen Sie die folgenden Schritte aus, um die Auslagerungsdatei zu deaktivieren und zu entfernen:
-
Deaktivieren Sie den Auslagerungsbereich, indem Sie Folgendes ausführen:
sudo swapoff -v /swapfile
-
Öffnen Sie die
/etc/fstab
Datei mit Ihrem Texteditor und entfernen Sie den Swap-Dateieintrag/swapfile swap swap defaults 0 0
. -
Löschen Sie abschließend die eigentliche Auslagerungsdatei mit dem
rm
Befehl:sudo rm /swapfile