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. Wenn Ubuntu auf einer virtuellen Maschine ausgeführt wird, ist normalerweise keine Auslagerungspartition vorhanden, und die einzige Option besteht darin, eine Auslagerungsdatei zu erstellen.
Dieses Tutorial erklärt, wie man eine Auslagerungsdatei auf Ubuntu 20.04 hinzufügt.
Bevor Sie beginnen #
Swap sollte nicht als Ersatz für physischen Speicher angesehen werden. Da der Auslagerungsbereich ein Bereich der Festplatte ist, hat er eine langsamere Zugriffszeit als der physische Speicher. Wenn Ihrem System ständig der Arbeitsspeicher ausgeht, sollten Sie mehr RAM hinzufügen.
Im Allgemeinen hängt die Größe der Auslagerungsdatei davon ab, wie viel RAM Ihr System hat:
- Systeme mit weniger als 2 GB RAM - 2-mal so viel RAM.
- Systeme mit 2 bis 8 GB RAM - die gleiche Größe wie der Arbeitsspeicher.
- Systeme mit mehr als 8 GB RAM - mindestens 4 GB Swap.
Nur root oder Benutzer mit sudo-Berechtigungen können die Auslagerungsdatei aktivieren.
Erstellen einer Auslagerungsdatei #
In diesem Beispiel erstellen wir 2 GB
Auslagerungsdatei. Wenn Sie mehr Swap hinzufügen möchten, ersetzen Sie 2G
mit der Größe des Auslagerungsbereichs, den Sie benötigen.
Führen Sie die folgenden Schritte aus, um Swap Space unter Ubuntu 20.04 hinzuzufügen:
-
Erstellen Sie zuerst eine Datei, die als Auslagerung verwendet wird:
sudo fallocate -l 2G /swapfile
Wenn die
fallocate
Dienstprogramm ist auf Ihrem System nicht vorhanden, oder Sie erhalten eine Fehlermeldung, die besagt:fallocate failed: Operation not supported
verwenden Sie den folgenden Befehl, um die Auslagerungsdatei zu erstellen:sudo dd if=/dev/zero of=/swapfile bs=1024 count=2097152
-
Setzen Sie die Dateiberechtigungen auf
600
um normale Benutzer daran zu hindern, die Datei zu schreiben und zu lesen:sudo chmod 600 /swapfile
-
Erstellen Sie einen Linux-Auslagerungsbereich für die Datei:
sudo mkswap /swapfile
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes) no label, UUID=fde7d2c8-06ea-400a-9027-fd731d8ab4c8
-
Aktivieren Sie die Auslagerungsdatei, indem Sie den folgenden Befehl ausführen:
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 oder denfree
Befehl, wie unten gezeigt:sudo swapon --show
NAME TYPE SIZE USED PRIO /swapfile file 2G 0B -1
sudo free -h
total used free shared buff/cache available Mem: 981Mi 97Mi 68Mi 0.0Ki 814Mi 735Mi Swap: 2.0Gi 10Mi 1.9Gi
Anpassen des Swapiness-Wertes #
Swappiness ist eine Linux-Kernel-Eigenschaft, die definiert, wie oft das System den Swap-Bereich verwendet. Er kann einen Wert zwischen 0 und 100 haben. Ein niedriger Wert veranlasst den Kernel, Auslagerungen möglichst zu vermeiden, während ein höherer Wert den Kernel veranlasst, den Auslagerungsbereich aggressiver zu nutzen.
Unter Ubuntu ist der Standardwert für die Auslagerung auf 60
eingestellt . Sie können den aktuellen Wert überprüfen, indem Sie den folgenden Befehl eingeben:
cat /proc/sys/vm/swappiness
60
Während der Swappiness-Wert von 60
ist für die meisten Linux-Systeme in Ordnung, für Produktionsserver müssen Sie möglicherweise einen niedrigeren Wert festlegen.
Zum Beispiel, um den Swappiness-Wert auf 10
zu setzen , ausführen:
sudo sysctl vm.swappiness=10
Um diesen Parameter über Neustarts hinweg dauerhaft 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 #
Gehen Sie folgendermaßen vor, um die Auslagerungsdatei zu deaktivieren und zu löschen:
-
Deaktivieren Sie zunächst den Swap Space:
sudo swapoff -v /swapfile
-
Entfernen Sie als Nächstes den Eintrag der Auslagerungsdatei
/swapfile swap swap defaults 0 0
aus/etc/fstab
Datei. -
Entfernen Sie schließlich die eigentliche Auslagerungsdatei mit dem
rm
Befehl:sudo rm /swapfile