Swap ist ein Speicherplatz auf einer Festplatte, der verwendet wird, wenn der physische RAM-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 beschreibt die notwendigen Schritte, um eine Auslagerungsdatei auf Debian 9-Systemen hinzuzufügen.
Bevor Sie beginnen #
Bevor Sie mit diesem Tutorial fortfahren, überprüfen Sie, ob Ihre Debian-Installation bereits Swap aktiviert hat, indem Sie Folgendes eingeben:
sudo swapon --show
Wenn die Ausgabe leer ist, bedeutet dies, dass das System keinen Auslagerungsbereich hat.
Andernfalls, wenn Sie etwas wie unten erhalten, haben Sie bereits Swap auf Ihrem Computer aktiviert.
NAME TYPE SIZE USED PRIO
/dev/sda2 partition 4G 0B -1
Obwohl es möglich ist, ist es nicht üblich, mehrere Auslagerungsbereiche auf einer einzelnen Maschine zu haben.
Erstellen einer Auslagerungsdatei #
Der Benutzer, als der Sie angemeldet sind, muss über sudo-Berechtigungen verfügen, um Swap aktivieren zu können. In dieser Anleitung fügen wir 1G
hinzu Wenn Sie einen größeren Swap erstellen möchten, ersetzen Sie 1G
mit der Größe des Auslagerungsbereichs, den Sie benötigen.
Die folgenden Schritte zeigen, wie man Auslagerungsspeicher auf Debian 9 hinzufügt.
-
Beginnen Sie mit dem Erstellen einer Datei, die für den Austausch verwendet wird:
sudo fallocate -l 1G /swapfile
Wenn
fallocate
nicht installiert ist oder Sie erhalten eine Fehlermeldung, die besagt:fallocate failed: Operation not supported
Verwenden Sie dann den folgenden Befehl, 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, indem Sie Folgendes eingeben:
sudo swapon /swapfile
Machen Sie die Änderung dauerhaft, indem Sie
/etc/fstab
öffnen Datei:sudo nano /etc/fstab
und folgende Zeile einfügen:
/etc/fstab/swapfile swap swap defaults 0 0
-
Um zu überprüfen, ob der Swap aktiv ist, verwenden Sie entweder den
swapon
oderfree
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 wird den Kernel dazu bringen, zu versuchen, Auslagerungen zu vermeiden, wann immer es möglich ist, während ein höherer Wert den Kernel veranlassen wird, den Auslagerungsbereich aggressiver zu nutzen.
Der Standardwert für die Auslagerung ist 60. Sie können den aktuellen Wert für die Auslagerung überprüfen, indem Sie den folgenden Befehl eingeben:
cat /proc/sys/vm/swappiness
60
Während der Swappiness-Wert von 60 für die meisten Linux-Systeme in Ordnung ist, müssen Sie für Produktionsserver möglicherweise 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 zunächst den Auslagerungsbereich, indem Sie Folgendes eingeben:
sudo swapoff -v /swapfile
-
Entfernen Sie als Nächstes den Eintrag der Auslagerungsdatei
/swapfile swap swap defaults 0 0
aus/etc/fstab
Datei. -
Löschen Sie abschließend die eigentliche Auslagerungsdatei:
sudo rm /swapfile