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 /swapfileWenn die
fallocateDienstprogramm ist auf Ihrem System nicht vorhanden, oder Sie erhalten eine Fehlermeldung, die besagt:fallocate failed: Operation not supportedverwenden 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
600um 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 /swapfileSetting 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 /swapfileUm die Änderung dauerhaft zu machen, öffnen Sie
/etc/fstabDatei:sudo nano /etc/fstabund 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
swaponverwenden oder denfreeBefehl, wie unten gezeigt:sudo swapon --showNAME TYPE SIZE USED PRIO /swapfile file 2G 0B -1sudo free -htotal 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 0aus/etc/fstabDatei. -
Entfernen Sie schließlich die eigentliche Auslagerungsdatei mit dem
rmBefehl:sudo rm /swapfile