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. In den meisten Fällen ist beim Ausführen von CentOS auf einer virtuellen Maschine keine Auslagerungspartition vorhanden, sodass die einzige Option darin besteht, eine Auslagerungsdatei zu erstellen.
Dieses Tutorial erklärt, wie man eine Auslagerungsdatei auf CentOS 7-Systemen hinzufügt.
Bevor Sie beginnen #
Bevor Sie mit diesem Tutorial fortfahren, überprüfen Sie, ob Ihre CentOS-Installation bereits Swap aktiviert hat, indem Sie Folgendes eingeben:
sudo swapon --show
Wenn die Ausgabe leer ist, bedeutet dies, dass Ihr System keinen Auslagerungsbereich aktiviert hat.
Andernfalls, wenn Sie etwas wie unten erhalten, haben Sie bereits Swap auf Ihrem Computer aktiviert.
NAME TYPE SIZE USED PRIO
/dev/dm-1 partition 1.5G 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 mehr Swap hinzufügen möchten, ersetzen Sie 1G
mit der Größe des Auslagerungsbereichs, den Sie benötigen.
Führen Sie die folgenden Schritte aus, um Auslagerungsspeicher auf einem CentOS 7-System hinzuzufügen.
-
Erstellen Sie zuerst eine Datei, die als Auslagerungsspeicher verwendet wird:
sudo fallocate -l 1G /swapfile
Wenn die
fallocate
Dienstprogramm ist auf Ihrem System nicht verfügbar oder Sie erhalten die Fehlermeldungfallocate failed: Operation not supported
verwenden Sie den folgenden Befehl, um die Auslagerungsdatei zu erstellen:sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
-
Stellen Sie sicher, dass nur der Root-Benutzer die Auslagerungsdatei lesen und schreiben kann, indem Sie die richtigen Berechtigungen festlegen:
sudo chmod 600 /swapfile
-
Richten Sie als Nächstes einen Linux-Auslagerungsbereich für die Datei ein:
sudo mkswap /swapfile
-
Führen Sie den folgenden Befehl aus, um den Austausch zu aktivieren:
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
-
Überprüfen Sie, ob der Swap aktiv ist, indem Sie entweder
swapon
verwenden oder denfree
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 standardmäßige Auslagerungswert unter CentOS 7 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 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 mit
rm
:sudo rm /swapfile