Wie man Swap Space unter Debian hinzufügt 10

Einführung

Eine der einfachsten Möglichkeiten zum Schutz vor Fehlern aufgrund von Speichermangel in Anwendungen besteht darin, Ihrem Server Auslagerungsspeicher hinzuzufügen. In diesem Handbuch wird beschrieben, wie Sie eine Auslagerungsdatei zu einem Debian 10-Server hinzufügen.

Was ist Swap?

Swap ist ein Bereich auf einer Festplatte, der als Ort festgelegt wurde, an dem das Betriebssystem vorübergehend Daten speichern kann, die nicht mehr im RAM gespeichert werden können. Grundsätzlich können Sie auf diese Weise die Menge an Informationen erhöhen, die Ihr Server mit einigen Einschränkungen im Arbeitsspeicher behalten kann. Der Auslagerungsspeicherplatz auf der Festplatte wird hauptsächlich verwendet, wenn im RAM nicht mehr genügend Speicherplatz für die verwendeten Anwendungsdaten vorhanden ist.

Die auf die Festplatte geschriebenen Informationen sind erheblich langsamer als die im RAM gespeicherten Informationen. Das Betriebssystem zieht es jedoch vor, weiterhin Anwendungsdaten im Arbeitsspeicher auszuführen und Swap für die älteren Daten zu verwenden. Insgesamt kann ein Auslagerungsspeicher als Fallback für den Fall, dass der Arbeitsspeicher Ihres Systems erschöpft ist, ein gutes Sicherheitsnetz gegen Ausnahmen aufgrund von nicht genügend Arbeitsspeicher auf Systemen sein, auf denen kein SSD-Speicher verfügbar ist.

Schritt 1 - Überprüfen des Systems auf Swap-Informationen

Bevor wir beginnen, können wir prüfen, ob auf dem System bereits Swap-Speicher verfügbar ist. Es ist möglich, mehrere Auslagerungsdateien oder Auslagerungspartitionen zu haben, aber im Allgemeinen sollte eine ausreichend sein.

Wir können sehen, ob das System einen konfigurierten Swap hat, indem wir Folgendes eingeben:

sudo swapon --show

Wenn Sie keine Ausgabe zurückerhalten, bedeutet dies, dass auf Ihrem System derzeit kein Auslagerungsspeicher verfügbar ist.

Sie können überprüfen, ob es keinen aktiven Swap gibt, indem Sie das Dienstprogramm + free + verwenden:

free -h
Output              total        used        free      shared  buff/cache   available
Mem:          990Mi        36Mi       863Mi       4.0Mi        89Mi       837Mi

Wie Sie in der Zeile * Swap * der Ausgabe sehen können, ist auf dem System kein Swap aktiv.

Schritt 2 - Überprüfen des verfügbaren Speicherplatzes auf der Festplattenpartition

Bevor wir unsere Auslagerungsdatei erstellen, überprüfen wir die aktuelle Festplattennutzung, um sicherzustellen, dass genügend Speicherplatz vorhanden ist. Tun Sie dies, indem Sie Folgendes eingeben:

df -h
OutputFilesystem      Size  Used Avail Use% Mounted on
udev            488M     0  488M   0% /dev
tmpfs           100M  4.5M   96M   5% /run
/dev/vda1        25G  989M   23G   5% /
tmpfs           499M     0  499M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           499M     0  499M   0% /sys/fs/cgroup
tmpfs           100M     0  100M   0% /run/user/1001

Das Gerät mit "+ / " in der Spalte " Mounted on +" ist in diesem Fall unsere Festplatte. In diesem Beispiel steht ausreichend Speicherplatz zur Verfügung (nur 1.4G verwendet). Ihre Nutzung wird wahrscheinlich anders sein.

Obwohl es viele Meinungen über die angemessene Größe eines Swap Space gibt, hängt dies wirklich von Ihren persönlichen Vorlieben und Ihren Anwendungsanforderungen ab. Im Allgemeinen ist eine Menge gleich oder doppelt so viel RAM auf Ihrem System ein guter Ausgangspunkt. Eine andere gute Faustregel ist, dass alles über 4 GB Swap wahrscheinlich unnötig ist, wenn Sie es nur als RAM-Fallback verwenden.

Schritt 3 - Erstellen einer Auslagerungsdatei

Jetzt, da wir unseren verfügbaren Festplattenspeicher kennen, können wir eine Auslagerungsdatei in unserem Dateisystem erstellen. Wir werden eine Datei der Swap-Größe, die wir wollen, mit dem Namen "+ swapfile +" in unserem Root-Verzeichnis (/) zuordnen.

Die beste Art, eine Auslagerungsdatei zu erstellen, ist das Programm + fallocate +. Dieser Befehl erstellt sofort eine Datei mit der angegebenen Größe.

Da der Server in unserem Beispiel über 1 GB RAM verfügt, erstellen wir in diesem Handbuch eine 1 GB-Datei. Passen Sie dies an die Bedürfnisse Ihres eigenen Servers an:

sudo fallocate -l  /swapfile

Wir können überprüfen, ob die richtige Menge an Speicherplatz reserviert wurde, indem wir Folgendes eingeben:

ls -lh /swapfile
Output-rw-r--r-- 1 root root 1.0G May 29 17:34 /swapfile

Unsere Datei wurde mit der richtigen Menge an Speicherplatz erstellt.

Schritt 4 - Aktivieren der Auslagerungsdatei

Jetzt, da wir eine Datei mit der richtigen Größe zur Verfügung haben, müssen wir diese tatsächlich in Swap Space umwandeln.

Zuerst müssen wir die Berechtigungen der Datei sperren, damit nur Benutzer mit * root * -Rechten den Inhalt lesen können. Dies verhindert, dass normale Benutzer auf die Datei zugreifen können, was erhebliche Sicherheitsrisiken 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 Berechtigungsänderung, indem Sie Folgendes eingeben:

ls -lh /swapfile
Output 1 root root 1.0G May 29 17:34 /swapfile

Wie Sie sehen, sind die Lese- und Schreibflags nur für den Benutzer * root * aktiviert.

Wir können die Datei jetzt als Auslagerungsspeicher markieren, indem wir Folgendes eingeben:

sudo mkswap /swapfile
OutputSetting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=b591444e-c12b-45a6-90fc-e8b24c67c006f

Nach dem Markieren der Datei können wir die Auslagerungsdatei aktivieren, damit unser System sie verwenden kann:

sudo swapon /swapfile

Stellen Sie sicher, dass der Swap verfügbar ist, indem Sie Folgendes eingeben:

sudo swapon --show
OutputNAME      TYPE  SIZE USED PRIO
/swapfile file 1024M   0B   -2

Wir können die Ausgabe des Dienstprogramms "+ free +" erneut überprüfen, um unsere Ergebnisse zu bestätigen:

free -h
Output              total        used        free      shared  buff/cache   available
Mem:          990Mi        37Mi       860Mi       4.0Mi        92Mi       834Mi

Unser Swap wurde erfolgreich eingerichtet und wird von unserem Betriebssystem nach Bedarf verwendet.

Schritt 5 - Festlegen der Auslagerungsdatei

Unsere letzten Änderungen haben die Auslagerungsdatei für die aktuelle Sitzung aktiviert. Wenn wir jedoch neu starten, behält der Server die Swap-Einstellungen nicht automatisch bei. Wir können dies ändern, indem wir die Auslagerungsdatei zu Ihrer "+ / etc / fstab" -Datei hinzufügen.

Sichern Sie die Datei + / etc / fstab +, falls etwas schief geht:

sudo cp /etc/fstab /etc/fstab.bak

Fügen Sie die Informationen zur Auslagerungsdatei am Ende Ihrer + / etc / fstab + - Datei 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 aktualisieren können, um unseren Swap Space zu optimieren.

Schritt 6 - Optimieren Sie Ihre Swap-Einstellungen

Sie können einige Optionen konfigurieren, die sich auf die Leistung Ihres Systems auswirken, wenn Sie mit Swap arbeiten.

Anpassen der Swappiness-Eigenschaft

Der Parameter "+ swappiness +" konfiguriert, wie oft Ihr System Daten aus dem RAM in den Auslagerungsbereich auslagert. Dies ist ein Wert zwischen 0 und 100, der einen Prozentsatz darstellt.

Bei Werten nahe Null tauscht der Kernel nur dann Daten auf die Festplatte aus, wenn dies unbedingt erforderlich ist. Denken Sie daran, dass Interaktionen mit der Auslagerungsdatei insofern „teuer“ sind, als sie viel länger dauern als Interaktionen mit dem Arbeitsspeicher und zu einer erheblichen Verringerung der Leistung führen können. Wenn Sie dem System mitteilen, dass es sich nicht auf den Swap verlassen soll, wird Ihr System im Allgemeinen schneller.

Bei Werten, die näher an 100 liegen, wird versucht, mehr Daten in den Swap zu verschieben, um mehr RAM-Speicherplatz freizuhalten. Abhängig vom Speicherprofil Ihrer Anwendung oder davon, wofür Sie Ihren Server verwenden, ist dies in einigen Fällen möglicherweise besser.

Wir können den aktuellen Swappiness-Wert sehen, indem wir Folgendes eingeben:

cat /proc/sys/vm/swappiness
Output60

Für einen Desktop ist eine Swap-Einstellung von 60 kein schlechter Wert. Für einen Server möchten Sie ihn möglicherweise näher an 0 heranrücken.

Wir können die Swap-Funktion mit dem Befehl + sysctl + auf einen anderen Wert setzen.

Um zum Beispiel die Austauschbarkeit auf 10 zu setzen, könnten wir Folgendes eingeben:

sudo sysctl vm.swappiness=10
Outputvm.swappiness = 10

Diese Einstellung bleibt bis zum nächsten Neustart erhalten. Wir können diesen Wert beim Neustart automatisch setzen, indem wir die Zeile zu unserer + / etc / sysctl.conf + Datei hinzufügen:

sudo nano /etc/sysctl.conf

Unten können Sie Folgendes hinzufügen:

/etc/sysctl.conf

vm.swappiness=10

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Anpassen der Cache-Druckeinstellung

Ein weiterer verwandter Wert, den Sie möglicherweise ändern möchten, ist "+ vfs_cache_pressure +". Mit dieser Einstellung wird konfiguriert, wie viel das System auswählen soll, um inode- und dentry-Informationen über andere Daten zwischenzuspeichern.

Grundsätzlich handelt es sich hierbei um Zugangsdaten zum Dateisystem. Das Nachschlagen ist in der Regel sehr kostspielig und wird häufig angefordert. Daher ist es eine hervorragende Sache, wenn Ihr System zwischengespeichert wird. Sie können den aktuellen Wert anzeigen, indem Sie das + proc + - Dateisystem erneut abfragen:

cat /proc/sys/vm/vfs_cache_pressure
Output100

In der aktuellen Konfiguration entfernt unser System die Inode-Informationen zu schnell aus dem Cache. Wir können dies auf eine konservativere Einstellung wie 50 setzen, indem wir Folgendes eingeben:

sudo sysctl vm.vfs_cache_pressure=50
Outputvm.vfs_cache_pressure = 50

Auch dies gilt nur für unsere aktuelle Sitzung. Das können wir ändern, indem wir es unserer Konfigurationsdatei hinzufügen, wie wir es mit unserer Einstellung swappiness gemacht haben:

sudo nano /etc/sysctl.conf

Fügen Sie unten die Zeile hinzu, die Ihren neuen Wert angibt:

/etc/sysctl.conf

vm.vfs_cache_pressure=50

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Fazit

Wenn Sie die Schritte in diesem Handbuch befolgen, haben Sie in Fällen, in denen es ansonsten zu Ausnahmen wegen unzureichendem Speicherplatz kommen würde, etwas Luft zum Atmen. Swap Space kann unglaublich nützlich sein, um einige dieser häufigen Probleme zu vermeiden.

Wenn bei Ihnen OOM-Fehler (zu wenig Arbeitsspeicher) auftreten oder Sie feststellen, dass Ihr System die von Ihnen benötigten Anwendungen nicht verwenden kann, ist es die beste Lösung, Ihre Anwendungskonfigurationen zu optimieren oder Ihren Server zu aktualisieren.