So fügen Sie Swap für CentOS hinzu 7

Einführung

Eine der einfachsten Möglichkeiten, die Reaktionszeit Ihres Servers zu verbessern und sich vor Fehlern aufgrund von Speichermangel in Ihrer Anwendung zu schützen, besteht darin, Auslagerungsspeicher hinzuzufügen. * Swap * ist ein Bereich auf einem Speicherlaufwerk, in dem das Betriebssystem vorübergehend Daten speichern kann, die sich nicht mehr im Speicher befinden.

Dies gibt Ihnen die Möglichkeit, die Menge an Informationen zu erhöhen, die Ihr Server mit einigen Einschränkungen im Arbeitsspeicher behalten kann. Das Lesen und Schreiben von Swap-Dateien ist langsamer als das Verwenden von Arbeitsspeicher, bietet jedoch ein gutes Sicherheitsnetz, wenn der Arbeitsspeicher Ihres Servers knapp wird.

Ohne Auslagerung kann ein Server, auf dem nicht genügend Arbeitsspeicher vorhanden ist, Anwendungen beenden, um Arbeitsspeicher freizugeben, oder sogar abstürzen. Dies kann zum Verlust nicht gespeicherter Daten oder zu Ausfallzeiten führen. Um einen zuverlässigen Datenzugriff zu gewährleisten, müssen einige Anwendungen zum Funktionieren ausgetauscht werden.

In diesem Handbuch wird erläutert, wie Sie eine Auslagerungsdatei auf einem CentOS 7-Server erstellen und aktivieren.

Note

Voraussetzungen

Bevor Sie mit diesem Handbuch beginnen, müssen zunächst einige Schritte ausgeführt werden.

Sie benötigen einen CentOS 7-Server, der mit einem Nicht-Root-Benutzer installiert und konfiguriert ist, der über die Berechtigung "+ sudo +" verfügt. Wenn Sie dies noch nicht getan haben, können Sie die Schritte 1 bis 4 unter CentOS 7 initial server setup ausführen Anleitung, um dieses Konto zu erstellen.

Sobald Sie einen Benutzer haben, der kein Root-Benutzer ist, können Sie damit SSH auf Ihrem CentOS-Server ausführen und mit der Installation Ihrer Auslagerungsdatei fortfahren.

Überprüfen Sie das System auf Swap-Informationen

Bevor wir beginnen, sollten wir uns den Speicher unseres Servers ansehen, um festzustellen, ob bereits Swap-Speicher verfügbar ist. Während wir mehrere Auslagerungsdateien oder Auslagerungspartitionen haben können, sollte eine im Allgemeinen ausreichen.

Wir können sehen, ob das System einen konfigurierten Swap hat, indem wir "+ swapon ", ein universelles Swap-Dienstprogramm, verwenden. Mit der Markierung " -s " zeigt " swapon +" eine Zusammenfassung der Swap-Nutzung und -Verfügbarkeit auf unserem Speichergerät an:

swapon -s

Wenn der Befehl nichts zurückgibt, war die Zusammenfassung leer und es ist keine Auslagerungsdatei vorhanden.

Eine andere Möglichkeit, den Swap-Speicherplatz zu überprüfen, ist das Dienstprogramm "+ free +", mit dem der Gesamtspeicherbedarf des Systems angezeigt wird. Wir können unsere aktuelle Speicher- und Auslagerungsauslastung (in Megabyte) durch Eingabe von sehen:

free -m
            total       used       free     shared    buffers     cached
Mem:          3953        315       3637          8         11        107
-/+ buffers/cache:        196       3756
         0       4095

Wie Sie sehen können, ist unser gesamter Swap-Bereich im System 0. Dies entspricht dem, was wir mit + swapon + gesehen haben.

Überprüfen Sie den verfügbaren Speicherplatz

Die typische Methode zum Zuweisen von Speicherplatz für den Austausch besteht darin, eine separate Partition zu verwenden, die für die Aufgabe reserviert ist. Das Ändern des Partitionsschemas ist jedoch aufgrund von Hardware- oder Softwareeinschränkungen nicht immer möglich. Glücklicherweise können wir genauso einfach eine Auslagerungsdatei erstellen, die sich auf einer vorhandenen Partition befindet.

Bevor wir dies tun, sollten wir uns unserer aktuellen Laufwerksauslastung bewusst sein. Wir können diese Informationen erhalten, indem wir Folgendes eingeben:

df -h
Filesystem      Size  Used Avail Use% Mounted on

devtmpfs        2.0G     0  2.0G   0% /dev
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           2.0G  8.3M  2.0G   1% /run
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
  • Hinweis: * Das Flag "+ -h " weist " dh " einfach an, Laufwerksinformationen in einem benutzerfreundlichen Leseformat auszugeben. Anstatt beispielsweise die unformatierte Anzahl von Speicherblöcken in einer Partition auszugeben, gibt ` df -h +` die Speicherplatznutzung und -verfügbarkeit in M ​​(für Megabyte) oder G (für Gigabyte) an.

Wie Sie in der ersten Zeile sehen können, sind auf unserer Speicherpartition 59 Gigabyte verfügbar, sodass wir ziemlich viel Platz zum Arbeiten haben. Denken Sie daran, dass dies auf einer frischen, mittelgroßen VPS-Instanz ist, sodass Ihre tatsächliche Nutzung möglicherweise sehr unterschiedlich ist.

Obwohl es viele Meinungen über die angemessene Größe eines Swap Space gibt, hängt dies wirklich von Ihren Anwendungsanforderungen und Ihren persönlichen Vorlieben ab. Im Allgemeinen ist eine Menge gleich oder doppelt so viel Speicher auf Ihrem System ein guter Ausgangspunkt.

Da mein System über 4 Gigabyte Arbeitsspeicher verfügt und eine Verdoppelung einen größeren Teil meines Speicherplatzes in Anspruch nimmt, als ich bereit bin, mich davon zu trennen, werde ich einen Auslagerungsspeicher von 4 Gigabyte erstellen, der dem Arbeitsspeicher meines Systems entspricht.

Erstellen Sie eine Auslagerungsdatei

Jetzt, da wir unseren verfügbaren Speicherplatz kennen, können wir eine Auslagerungsdatei in unserem Dateisystem erstellen. Wir erstellen eine Datei mit dem Namen "+ swapfile " in unserem Stammverzeichnis (" / +"). Sie können der Datei jedoch auch einen anderen Namen geben, wenn Sie dies vorziehen. Die Datei muss den für die Auslagerungsdatei erforderlichen Speicherplatz zuweisen.

Der schnellste und einfachste Weg, eine Auslagerungsdatei zu erstellen, ist die Verwendung von + fallocate +. Dieser Befehl erstellt sofort eine Datei mit einer vorab zugewiesenen Größe. Wir können eine 4-Gigabyte-Datei erstellen, indem wir Folgendes eingeben:

sudo fallocate -l

Nachdem Sie Ihr Kennwort eingegeben haben, um die Berechtigung "+ sudo " zu autorisieren, wird die Auslagerungsdatei fast sofort erstellt und die Aufforderung wird an Sie zurückgegeben. Wir können überprüfen, ob die richtige Menge an Speicherplatz für den Swap reserviert wurde, indem wir " ls +" verwenden:

ls -lh
-rw-r--r-- 1 root root  Oct 30 11:00

Wie Sie sehen, wurde unsere Auslagerungsdatei mit der richtigen Menge an Speicherplatz erstellt.

Aktivieren Sie eine Auslagerungsdatei

Momentan wird unsere Datei erstellt, aber unser System weiß nicht, dass dies für den Austausch verwendet werden soll. Wir müssen unserem System mitteilen, dass diese Datei als Swap formatiert und dann aktiviert werden soll.

Bevor wir das tun, sollten wir die Berechtigungen für unsere Auslagerungsdatei so anpassen, dass sie von niemandem außer dem Root-Konto gelesen werden kann. Anderen Benutzern das Lesen oder Schreiben dieser Datei zu gestatten, wäre ein großes Sicherheitsrisiko. Wir können die Berechtigungen mit + chmod sperren:

sudo chmod 600

Dadurch werden sowohl Lese- als auch Schreibberechtigungen nur auf das Root-Konto beschränkt. Wir können überprüfen, ob die Auslagerungsdatei die richtigen Berechtigungen hat, indem wir wieder "+ ls -lh +" verwenden:

ls -lh
-rw------- 1 root root  Oct 30 11:00

Da unsere Auslagerungsdatei jetzt sicherer ist, können wir unserem System mitteilen, dass der Auslagerungsbereich für die Verwendung eingerichtet werden soll, indem Folgendes eingegeben wird:

sudo mkswap
Setting up swapspace version 1, size =  KiB
no label, UUID=b99230bb-21af-47bc-8c37-de41129c39bf

Unsere Auslagerungsdatei kann jetzt als Auslagerungsspeicher verwendet werden. Wir können damit beginnen, indem wir Folgendes eingeben:

sudo swapon

Um zu überprüfen, ob die Prozedur erfolgreich war, können wir jetzt überprüfen, ob unser System Swap Space meldet:

swapon -s
Filename                Type        Size    Used    Priority
              file         0     -1

Diese Ausgabe bestätigt, dass wir eine neue Auslagerungsdatei haben. Wir können das Dienstprogramm "+ free +" erneut verwenden, um unsere Ergebnisse zu bestätigen:

free -m
            total       used       free     shared    buffers     cached
Mem:          3953        315       3637          8         11        107
-/+ buffers/cache:        196       3756
         0       4095

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

Machen Sie die Auslagerungsdatei dauerhaft

Unsere Auslagerungsdatei ist momentan aktiviert, aber wenn wir neu starten, aktiviert der Server die Datei nicht automatisch für die Verwendung. Wir können das ändern, indem wir die Datei + fstab + ändern, eine Tabelle, die Dateisysteme und Partitionen verwaltet.

Bearbeiten Sie die Datei mit den Privilegien "+ sudo +" in Ihrem Texteditor:

sudo nano /etc/fstab

Am Ende der Datei müssen Sie eine Zeile hinzufügen, die das Betriebssystem anweist, die von Ihnen erstellte Auslagerungsdatei automatisch zu verwenden:

  swap    swap    sw  0   0

Wenn Sie mit dem Hinzufügen der Zeile fertig sind, können Sie die Datei speichern und schließen. Der Server überprüft diese Datei bei jedem Start, sodass die Auslagerungsdatei von nun an zur Verwendung bereit ist.

Ändern Sie Ihre Swap-Einstellungen (optional)

Sie können einige Optionen konfigurieren, die sich auf die Leistung Ihres Systems auswirken, wenn Sie mit Swap arbeiten. Diese Konfigurationen sind in den meisten Fällen optional, und die Änderungen, die Sie vornehmen, hängen von Ihren Anwendungsanforderungen und Ihren persönlichen Vorlieben ab.

Swappiness

Der Parameter "+ swappiness +" bestimmt, wie oft Ihr System Daten aus dem Arbeitsspeicher in den Auslagerungsbereich auslagert. Dies ist ein Wert zwischen 0 und 100, der den Prozentsatz der Speichernutzung angibt, der die Verwendung von Swap auslöst.

Bei Werten nahe Null werden die Daten nur dann auf das Laufwerk übertragen, wenn dies unbedingt erforderlich ist. Beachten Sie, dass Interaktionen mit der Auslagerungsdatei insofern „teuer“ sind, als sie viel langsamer sind als Interaktionen mit dem Speicher. Dieser Unterschied in der Lese- und Schreibgeschwindigkeit kann die Leistung einer Anwendung erheblich beeinträchtigen. Wenn Sie dem System mitteilen, dass es sich nicht so sehr auf den Swap verlassen soll, wird Ihr System im Allgemeinen schneller.

Werte, die näher an 100 liegen, versuchen, mehr Daten in den Swap zu verschieben, um mehr Speicherplatz freizuhalten. Abhängig vom Speicherprofil Ihrer Anwendung oder davon, wofür Sie Ihren Server verwenden, ist dies in einigen Fällen möglicherweise die bessere Wahl.

Den aktuellen Swappiness-Wert können wir aus der Konfigurationsdatei + swappiness + ablesen:

cat /proc/sys/vm/swappiness
30

CentOS 7 verwendet standardmäßig eine Swap-Einstellung von 30, was für die meisten Desktops und lokalen Server ein angemessener Mittelweg ist. Für ein VPS-System möchten wir es wahrscheinlich 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=
vm.swappiness =

Diese Einstellung bleibt bis zum nächsten Neustart erhalten. Um die Einstellung zwischen Neustarts beizubehalten, können wir die ausgegebene Zeile zu unserer + sysctl + Konfigurationsdatei hinzufügen:

sudo nano /etc/sysctl.conf

Fügen Sie Ihre Einstellungen für die Austauschbarkeit am Ende der Datei hinzu:

vm.swappiness =

Wenn Sie mit dem Hinzufügen der Zeile fertig sind, können Sie die Datei speichern und schließen. Der Server stellt nun automatisch den Swap-Status auf den Wert ein, den Sie bei jedem Start angegeben haben.

Cache-Druck

Ein weiterer verwandter Wert, den Sie möglicherweise ändern möchten, ist "+ vfs_cache_pressure +". Diese Einstellung wirkt sich auf die Speicherung spezieller Dateisystem-Metadateneinträge aus. Das ständige Lesen und Aktualisieren dieser Informationen ist in der Regel sehr kostspielig. Daher ist es für die Leistung Ihres Systems hervorragend, sie länger im Cache zu speichern.

Sie können den aktuellen Wert dieses Cache-Drucks anzeigen, indem Sie das + proc + - Dateisystem erneut abfragen:

cat /proc/sys/vm/vfs_cache_pressure
100

In der aktuellen Konfiguration entfernt unser System die Inode-Informationen viel zu schnell aus dem Cache. Wir können dies mit + sysctl + auf eine konservativere Einstellung wie 50 setzen:

sudo sysctl vm.vfs_cache_pressure=
vm.vfs_cache_pressure =

Auch dies gilt nur für unsere aktuelle Sitzung. Wir können das ändern, indem wir es zu unserer Konfigurationsdatei hinzufügen, wie wir es mit unserer Swap-Einstellung getan haben:

sudo nano /etc/sysctl.conf

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

vm.vfs_cache_pressure =

Wenn Sie mit dem Hinzufügen der Zeile fertig sind, können Sie die Datei speichern und schließen. Der Server setzt den Cache-Druck nun automatisch auf den Wert, den Sie bei jedem Start angegeben haben.

Fazit

Wenn Sie die Schritte in diesem Handbuch befolgen, haben Sie Ihrem Server hinsichtlich der Speichernutzung einen gewissen Freiraum eingeräumt. Swap Space ist unglaublich nützlich, um einige häufige 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. Durch die Konfiguration des Swap Space können Sie jedoch flexibler werden und Zeit auf einem weniger leistungsstarken Server sparen.