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 CentOS auf einer virtuellen Maschine ausgeführt wird, ist normalerweise keine Auslagerungspartition vorhanden, sodass die einzige Option darin besteht, eine Auslagerungsdatei zu erstellen.
Dieser Artikel behandelt die Schritte zum Hinzufügen einer Auslagerungsdatei auf CentOS 8-Systemen.
Erstellen und Aktivieren einer Auslagerungsdatei #
Führen Sie die folgenden Schritte als Root oder Benutzer mit sudo-Berechtigungen aus, um Auslagerungsspeicher auf einem CentOS 8-System hinzuzufügen.
-
Erstellen Sie zunächst eine Datei, die als Auslagerungsbereich dient:
sudo fallocate -l 1G /swapfile
In diesem Beispiel erstellen wir eine Auslagerungsdatei mit einer Größe von 1 GB. Wenn Sie mehr Swap benötigen, ersetzen Sie
1G
mit der gewünschten Größe.Wenn die
fallocate
Dienstprogramm ist auf Ihrem System nicht verfügbar oder Sie erhalten die Fehlermeldungfallocate failed: Operation not supported
verwenden Sie dendd
Befehl zum Erstellen der Auslagerungsdatei:sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
-
Stellen Sie die Dateiberechtigungen so ein, dass nur der Root-Benutzer die Auslagerungsdatei lesen und schreiben kann:
sudo chmod 600 /swapfile
-
Richten Sie als Nächstes einen Linux-Auslagerungsbereich für die Datei ein:
sudo mkswap /swapfile
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes) no label, UUID=0abdb8ba-57d6-4435-8fd8-5db9fc705045
-
Aktivieren Sie den Swap, indem Sie den folgenden Befehl ausführen:
sudo swapon /swapfile
-
Ü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 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
-
Machen Sie die Änderung dauerhaft, indem Sie einen Swap-Eintrag in
/etc/fstab
hinzufügen Datei:sudo nano /etc/fstab
Fügen Sie die folgende Zeile ein:
/etc/fstab/swapfile swap swap defaults 0 0
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 Auslagerungsraum aggressiver zu nutzen.
Der standardmäßige Auslagerungswert unter CentOS 8 ist 30. Sie können den aktuellen Auslagerungswert überprüfen, indem Sie den folgenden Befehl eingeben:
cat /proc/sys/vm/swappiness
30
Während der Swappiness-Wert von 30 für Desktop- und Entwicklungsmaschinen 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 #
Gehen Sie folgendermaßen vor, um die Auslagerungsdatei zu deaktivieren und zu entfernen:
-
Deaktivieren Sie den Auslagerungsbereich, indem Sie Folgendes eingeben:
sudo swapoff -v /swapfile
-
Entfernen Sie den Swap-Eintrag
/swapfile swap swap defaults 0 0
aus/etc/fstab
Datei. -
Löschen Sie die eigentliche Auslagerungsdatei mit
rm
:sudo rm /swapfile