Wie man eine Swap-Datei auf einem Rocky Linux 9 Server hinzufügt
Was ist Swap?
Swap ist ein Teil des Festplattenspeichers, der vom Betriebssystem reserviert wurde, um Daten vorübergehend zu speichern, die nicht mehr im RAM gehalten werden können. Dadurch können Sie die Menge an Informationen erhöhen, die Ihr Server im Arbeitsspeicher behalten kann, allerdings mit einigen Einschränkungen. Der Swap-Bereich auf der Festplatte wird hauptsächlich genutzt, wenn im RAM nicht mehr genug Platz für aktive Anwendungsdaten vorhanden ist.
Die auf die Festplatte geschriebenen Informationen sind erheblich langsamer als die im RAM gespeicherten Informationen, aber das Betriebssystem wird bevorzugen, aktive Anwendungsdaten im Speicher zu halten und Swap für ältere Daten zu verwenden. Insgesamt kann ein Swap-Bereich als Sicherheitsnetz gegen Speicherfehler nützlich sein, wenn der RAM des Systems erschöpft ist, insbesondere auf Systemen ohne SSD-Speicher.
Schritt 1 – Überprüfung des Systems auf Swap-Informationen
Bevor wir beginnen, können wir überprüfen, ob das System bereits einen Swap-Bereich hat. Es ist möglich, mehrere Swap-Dateien oder Swap-Partitionen zu haben, aber im Allgemeinen sollte eine ausreichen.
Wir können prüfen, ob das System Swap konfiguriert hat, indem wir eingeben:
sudo swapon --show
Wenn keine Ausgabe zurückgegeben wird, bedeutet dies, dass Ihr System derzeit keinen Swap-Bereich hat.
Sie können auch überprüfen, dass kein aktiver Swap vorhanden ist, indem Sie das Free-Dienstprogramm verwenden:
free -h
Ausgabe:
total used free shared buff/cache available
Mem: 1.7Gi 173Mi 1.2Gi 9.0Mi 336Mi 1.4Gi
Swap: 0B 0B 0B
Wie Sie in der Swap-Zeile der Ausgabe sehen können, ist kein Swap auf dem System aktiv.
Schritt 2 – Überprüfung des verfügbaren Speicherplatzes auf der Festplattenpartition
Bevor wir unsere Swap-Datei erstellen, überprüfen wir die aktuelle Speichernutzung, um sicherzustellen, dass wir genügend Platz haben. Geben Sie dazu Folgendes ein:
df -h
Ausgabe:
Filesystem Size Used Avail Use% Mounted on
devtmpfs 855M 0 855M 0% /dev
tmpfs 888M 0 888M 0% /dev/shm
tmpfs 355M 9.4M 346M 3% /run
/dev/vda1 59G 1.4G 58G 3% /
/dev/vda2 994M 155M 840M 16% /boot
/dev/vda15 100M 7.0M 93M 7% /boot/efi
tmpfs 178M 0 178M 0% /run/user/0
Das Gerät mit / in der Spalte Mounted on ist in diesem Fall unsere Festplatte. Wir haben in diesem Beispiel viel Platz zur Verfügung (nur 1,4G belegt). Ihre Nutzung wird wahrscheinlich unterschiedlich sein.
Obwohl es viele Meinungen über die geeignete Größe eines Swap-Bereichs gibt, hängt es wirklich von Ihren persönlichen Vorlieben und Ihren Anwendungsanforderungen ab. Im Allgemeinen ist eine Menge, die der RAM-Größe Ihres Systems entspricht oder diese verdoppelt, ein guter Ausgangspunkt. Eine weitere Faustregel ist, dass alles über 4G Swap wahrscheinlich unnötig ist, wenn Sie es nur als RAM-Backup verwenden.
Schritt 3 – Erstellen einer Swap-Datei
Jetzt, da wir unseren verfügbaren Festplattenspeicher kennen, können wir eine Swap-Datei im Dateisystem erstellen. Wir werden eine Datei mit der gewünschten Größe namens swapfile im Stammverzeichnis (/) anlegen.
Der beste Weg, eine Swap-Datei zu erstellen, ist mit dem Programm fallocate. Dieser Befehl erstellt sofort eine Datei der angegebenen Größe.
Da der Server in unserem Beispiel 2G RAM hat, erstellen wir in diesem Leitfaden eine 2G-Datei. Passen Sie dies an die Anforderungen Ihres eigenen Servers an:
sudo fallocate -l 1G /swapfile
Wir können überprüfen, ob der richtige Speicherplatz reserviert wurde, indem wir Folgendes eingeben:
ls -lh /swapfile
Ausgabe:
-rw-r--r--. 1 root root 2.0G Sep 13 17:52 /swapfile
Unsere Datei wurde mit der richtigen Menge an reserviertem Speicherplatz erstellt.
Schritt 4 – Aktivieren der Swap-Datei
Jetzt, da wir eine Datei mit der richtigen Größe zur Verfügung haben, müssen wir sie tatsächlich in Swap-Speicher umwandeln.
Zuerst müssen wir die Berechtigungen der Datei sperren, sodass nur Benutzer mit Root-Berechtigungen auf den Inhalt zugreifen können. Dies verhindert, dass normale Benutzer auf die Datei zugreifen können, was erhebliche Sicherheitsprobleme mit sich bringen würde.
Machen Sie die Datei nur für Root zugänglich, indem Sie Folgendes eingeben:
sudo chmod 600 /swapfile
Überprüfen Sie die Änderung der Berechtigungen, indem Sie Folgendes eingeben:
ls -lh /swapfile
Ausgabe:
-rw------- 1 root root 2.0G Sep 13 17:52 /swapfile
Wie Sie sehen können, hat nur der Root-Benutzer die Lese- und Schreibrechte aktiviert.
Jetzt können wir die Datei als Swap-Bereich markieren, indem wir Folgendes eingeben:
sudo mkswap /swapfile
Ausgabe:
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=585e8b33-30fa-481f-af61-37b13326545b
Nachdem die Datei markiert wurde, können wir die Swap-Datei aktivieren, sodass unser System sie verwenden kann:
sudo swapon /swapfile
Überprüfen Sie, ob der Swap verfügbar ist, indem Sie Folgendes eingeben:
sudo swapon --show
Ausgabe:
NAME TYPE SIZE USED PRIO
/swapfile file 2G 0B -2
Wir können die Ausgabe des Free-Dienstprogramms erneut überprüfen, um unsere Ergebnisse zu bestätigen:
free -h
Ausgabe:
total used free shared buff/cache available
Mem: 1.7Gi 172Mi 1.2Gi 9.0Mi 338Mi 1.4Gi
Swap: 2.0Gi 0B 2.0Gi
Unser Swap wurde erfolgreich eingerichtet, und unser Betriebssystem wird ihn bei Bedarf verwenden.
Schritt 5 – Die Swap-Datei dauerhaft machen
Unsere jüngsten Änderungen haben die Swap-Datei für die aktuelle Sitzung aktiviert. Beim Neustart wird der Server die Swap-Einstellungen jedoch nicht automatisch beibehalten. Wir können dies ändern, indem wir die Swap-Datei in die Datei /etc/fstab
einfügen.
Sichern Sie die Datei /etc/fstab
für den Fall, dass etwas schiefgeht:
sudo cp /etc/fstab /etc/fstab.bak
Fügen Sie die Swap-Dateiinformationen am Ende der Datei /etc/fstab
hinzu, indem Sie Folgendes eingeben:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Als Nächstes überprüfen wir einige Einstellungen, die wir anpassen können, um unseren Swap-Bereich zu optimieren.
Schritt 6 – Feinabstimmung der Swap-Einstellungen
Anpassung der Swappiness-Eigenschaft
Der Swappiness-Parameter legt fest, wie oft Ihr System Daten aus dem RAM in den Swap-Bereich verschiebt. Dies ist ein Wert zwischen 0 und 100, der einen Prozentsatz darstellt.
Mit Werten nahe null wird der Kernel keine Daten auf die Festplatte verschieben, es sei denn, dies ist absolut notwendig. Interaktionen mit der Swap-Datei sind „teuer“, da sie wesentlich länger dauern als Interaktionen mit dem RAM und eine erhebliche Leistungsreduzierung verursachen können. Wenn das System angewiesen wird, den Swap nur selten zu verwenden, wird Ihr System in der Regel schneller.
Werte näher an 100 versuchen, mehr Daten in den Swap zu legen, um mehr RAM-Speicherplatz freizuhalten. Abhängig von den Speicheranforderungen Ihrer Anwendungen oder dem Verwendungszweck Ihres Servers könnte dies in einigen Fällen besser sein.
Sie können den aktuellen Swappiness-Wert anzeigen, indem Sie Folgendes eingeben:
cat /proc/sys/vm/swappiness
Ausgabe:
60
Für einen Desktop ist ein Swappiness-Wert von 60 nicht schlecht. Für einen Server möchten Sie ihn möglicherweise näher an 0 verschieben.
Sie können den Swappiness-Wert mithilfe des Befehls sysctl
auf einen anderen Wert setzen. Um beispielsweise den Swappiness-Wert auf 10 zu setzen, geben Sie Folgendes ein:
sudo sysctl vm.swappiness=10
Ausgabe:
vm.swappiness = 10
Diese Einstellung bleibt bis zum nächsten Neustart aktiv. Sie können diesen Wert automatisch beim Neustart setzen, indem Sie die Zeile in die Datei /etc/sysctl.conf
einfügen.
Um die Datei zu bearbeiten, verwenden Sie einen Texteditor wie nano
. Wenn nano
nicht installiert ist, können Sie es mit dem folgenden Befehl hinzufügen:
sudo dnf install nano
Bearbeiten Sie dann die Datei /etc/sysctl.conf
:
sudo nano /etc/sysctl.conf
Fügen Sie am Ende der Datei die folgende Zeile hinzu:
vm.swappiness=10
Speichern und schließen Sie die Datei.
Anpassung der Cache-Pressure-Einstellung
Ein weiterer verwandter Wert, den Sie ändern können, ist vfs_cache_pressure
. Diese Einstellung legt fest, wie stark das System Informationen über Inodes und Dentrys im Cache speichert oder diese Daten durch andere Daten ersetzt.
Diese Informationen sind oft angefordert und kostenintensiv abzurufen, sodass es von Vorteil ist, sie im Cache zu behalten. Sie können den aktuellen Wert anzeigen, indem Sie Folgendes eingeben:
cat /proc/sys/vm/vfs_cache_pressure
Ausgabe:
100
Standardmäßig entfernt unser System Inode-Informationen zu schnell aus dem Cache. Sie können diesen Wert auf einen konservativeren Wert wie 50 setzen, indem Sie Folgendes eingeben:
sudo sysctl vm.vfs_cache_pressure=50
Ausgabe:
vm.vfs_cache_pressure = 50
Wie zuvor bleibt diese Einstellung nur bis zum nächsten Neustart aktiv. Sie können sie dauerhaft machen, indem Sie sie in die Datei /etc/sysctl.conf
einfügen:
sudo nano /etc/sysctl.conf
Fügen Sie am Ende der Datei die folgende Zeile hinzu:
vm.vfs_cache_pressure=50
Speichern und schließen Sie die Datei, um die Änderungen zu übernehmen.
Abschluss
Wenn Sie den Anweisungen in diesem Leitfaden folgen, können Sie Ihren Server vor speicherbezogenen Problemen schützen. Ein Swap-Bereich ist eine hilfreiche Ergänzung, insbesondere bei Arbeitsspeichermangel.