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:

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:

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:

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:

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:

Überprüfen Sie die Änderung der Berechtigungen, indem Sie Folgendes eingeben:

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:

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:

Überprüfen Sie, ob der Swap verfügbar ist, indem Sie Folgendes eingeben:

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:

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:

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:

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:

Bearbeiten Sie dann die Datei /etc/sysctl.conf:

sudo nano /etc/sysctl.conf

Fügen Sie am Ende der Datei die folgende Zeile hinzu:

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:

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:

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.

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren:

centron Managed Cloud Hosting in Deutschland

Java-Array: So prüfst du Werte effizient

JavaScript
Wie prüft man, ob ein Java Array einen Wert enthält? Es gibt viele Möglichkeiten, um zu überprüfen, ob ein Java Array einen bestimmten Wert enthält. Einfache Iteration mit einer for-Schleife…
centron Managed Cloud Hosting in Deutschland

Wie berechnet man den BLEU-Score in Python?

Python
Wie berechnet man den BLEU-Score in Python? Der BLEU-Score in Python ist eine Metrik, die die Güte von maschinellen Übersetzungsmodellen misst. Ursprünglich wurde er nur für Übersetzungsmodelle entwickelt, wird jedoch…