Das Hinzufügen von Swap-Speicher zu Ihrem Server ist eine hervorragende Option, um Out-of-Memory-Fehler auszugleichen. Linux ermöglicht es Benutzern, Swap-Speicher in ihrem System hinzuzufügen, wenn der RAM-Speicher des Systems voll ist. Wenn Sie eine dedizierte Speicherpartition erstellen, ermöglichen Sie Ihrem physischen Speicher einen reibungslosen Betrieb, ohne sich große Sorgen über geringen Festplattenspeicher machen zu müssen.
Swap-Übersicht
Swap-Speicher in Linux ist ein Teil des virtuellen Speichers einer Maschine, der verwendet wird, wenn der physische Speicher voll ist. Insbesondere bei der Arbeit mit einem großen Programm oder einer Anwendung, bei der zusätzlicher Speicher benötigt wird, ist Swap-Speicher eine ideale Wahl, um vorübergehend inaktive Speicherseiten aufzunehmen. Das Erstellen eines Swap-Speichers ermöglicht es Benutzern, Daten zu speichern, wenn große Programme ausgeführt werden, und reduziert so Anwendungsabstürze. Das bedeutet: Wenn das System mehr Speicherressourcen benötigt und der RAM voll ist, werden alle inaktiven Seiten im Speicher in den Swap-Speicher verschoben und die Programme können ohne Unterbrechung ausgeführt werden.
Wie viel Swap-Speicher benötige ich?
Die Menge an Swap-Speicher hängt von mehreren Faktoren ab. Dazu gehören der verfügbare RAM, die Auslastung und die Frage, ob das System die Ruhezustandsfunktion (Suspend-to-Disk) unterstützen muss. In der folgenden Tabelle finden Sie den empfohlenen Swap-Speicher basierend auf dem im RAM verfügbaren Speicherplatz:
|
Lfd. Nr. |
Verfügbarer RAM-Speicher |
Empfohlener Swap-Speicher |
|
1. |
1GB |
1GB |
|
2. |
2GB |
1GB |
|
3. |
3GB |
2GB |
|
4. |
4GB |
2GB |
|
5. |
5GB |
2GB |
|
6. |
6GB |
2GB |
|
7. |
8GB |
3GB |
In diesem Tutorial werden wir Sie Schritt für Schritt durch das Hinzufügen von Swap-Speicher unter Ubuntu 20.04 führen. Fangen wir an!
Voraussetzungen
Um diesem Tutorial folgen zu können, benötigen Sie:
- Ubuntu installiert auf Ihrem System.
- Ein Nicht-Root-Benutzer-Konto eingerichtet mit sudo-Rechten auf Ihrem Rechner.
Schritt 1: Überprüfung der Swap-Informationen
Die Größe des Swap-Speichers hängt vom RAM des Systems ab. Daher ist es wichtig, die Verfügbarkeit von Swap-Speicher in Ihrem System zu überprüfen, bevor Sie einen erstellen. Geben Sie den folgenden Befehl ein, um zu prüfen, ob das System über einen konfigurierten Swap verfügt:
|
1 |
$ sudo swapon --show |
Eine angezeigte Ausgabe bedeutet, dass in Ihrem System Speicherplatz zum Erstellen von Swap-Speicher vorhanden ist. Keine Ausgabe ist jedoch ein Signal dafür, dass nicht genügend Speicherplatz vorhanden ist, um Swap-Speicher hinzuzufügen.
Verwenden Sie das Dienstprogramm free, um zu überprüfen, dass kein aktiver Swap vorhanden ist:
|
1 |
$ free -h |
Sie sehen die Ausgabe als eine leere Swap-Zeile:
Schritt 2: Überprüfung der Verfügbarkeit von Festplattenpartitionen
Ähnlich wie bei der Überprüfung der Systemverfügbarkeit prüfen wir nun unsere aktuelle Festplattennutzung, um sicherzustellen, dass wir genügend Speicherplatz haben. Verwenden Sie den Befehl df, um die Verfügbarkeit der Festplattenpartition zu prüfen:
|
1 |
df -h |
Das Gerät mit / in der Spalte Mounted on ist unsere Festplatte, die 11% frei ist. Sie sehen die Ausgabe:
Nachdem wir die Systemanforderungen überprüft haben, fahren wir fort und erstellen eine Swap-Datei auf unserem Dateisystem.
Schritt 3: Erstellen einer Swap-Datei
Um eine Swap-Datei auf unserem Dateisystem zu erstellen, weisen Sie einen Dateinamen als swapfile im Root-Verzeichnis (/) mithilfe des Programms fallocate zu. Die Zuweisung einer Dateigröße hängt von Ihren Anforderungen ab. Um das Tutorial einfach und leicht verständlich zu halten, erstellen wir eine Datei mit 1G und widmen ihr 1G RAM. Verwenden Sie den sudo -Befehl, um eine Swap-Datei zu erstellen:
|
1 |
sudo fallocate -l 1G /swapfile |
Geben Sie als Nächstes diesen Befehl ein, um den reservierten Speicherplatz zu überprüfen:
|
1 |
$ ls -lh /swapfile |
Nachdem wir nun einen Swap-Speicher in unserem System erstellt haben, aktivieren wir ihn im nächsten Schritt.
Schritt 4: Aktivieren der Swap-Datei
Sobald uns die richtige Größe zur Verfügung steht, konvertieren wir sie in Swap-Speicher. Aus Sicherheitsgründen ist es wichtig, dass unsere Datei für Root-Benutzer zugänglich ist und der Zugriff für normale Benutzer verhindert wird. Wir fügen Einschränkungen hinzu, sodass nur Benutzer mit root-Rechten die Datei anzeigen und ihren Inhalt lesen können. Verwenden Sie den folgenden root-Befehl, um die Datei nur für root-Benutzer zugänglich zu machen:
|
1 |
sudo chmod 600 /swapfile |
Verwenden Sie dann den Befehl ls, um die Änderungen zu überprüfen:
|
1 |
$ ls -lh /swapfile |
Wie Sie sehen können, hat nur der root-Benutzer die Lese- und Schreibberechtigungen aktiviert:
Markieren Sie die Datei danach als Swap-Speicher:
|
1 |
sudo mkswap /swapfile |
Sie sehen die Ausgabe:
Aktivieren Sie danach die Swap-Datei und erlauben Sie unserem System, sie zu verwenden:
|
1 |
sudo swapon /swapfile |
Überprüfen Sie als Nächstes die Verfügbarkeit des Swaps:
|
1 |
$ sudo swapon --show |
Sie sehen die Ausgabe:
Wie in Schritt 1, werden wir den Speicherplatz des free-Dienstprogramms noch einmal überprüfen:
|
1 |
free -h |
Sie sehen die Ausgabe:
Unser Swap wurde erfolgreich eingerichtet und unser Betriebssystem wird beginnen, ihn bei Bedarf zu verwenden. Im nächsten Schritt werden wir die Swap-Datei dauerhaft machen.
Schritt 5: Die Swap-Datei dauerhaft machen
Standardmäßig behält der Server die Swap-Einstellungen nach einem Neustart nicht automatisch bei. Um die Standardeinstellungen zu ändern und auf Nummer sicher zu gehen, fügen wir die Swap-Datei zu unserer /etc/fstab-Datei hinzu. Verwenden Sie den sudo-Befehl, um ein Backup der /etc/fstab-Datei zu erstellen:
|
1 |
sudo cp /etc/fstab /etc/fstab.bak |
Fügen Sie als Nächstes die Informationen zur Swap-Datei am Ende Ihrer /etc/fstab-Datei hinzu, indem Sie Folgendes eingeben:
|
1 |
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab |
Lassen Sie uns danach einige Einstellungen überprüfen und Änderungen vornehmen, um unseren Swap-Speicherplatz zu optimieren.
Schritt 6: Änderung der Swap-Einstellungen
In diesem Schritt werden wir die Einstellungen konfigurieren und einige Änderungen vornehmen. Lassen Sie uns die Eigenschaft „swappiness“ anpassen und den Cache-Druck ändern.
-
Die Swappiness-Eigenschaft anpassen
Der Parameter swappiness ist ein anpassbarer Kernel-Parameter. Er ändert das Gleichgewicht zwischen dem Auslagern von Laufzeitspeicher und berücksichtigt den Datenaustausch beim Auslagern von Daten aus dem RAM in den Swap-Speicher. Dieser Parameterwert wird in Prozent ausgedrückt und reicht von 0 bis 100.
Der Wert vm.swappiness hat einen direkten Einfluss auf das Verhalten der System-Swappiness. Je höher der Wert vm.swappiness ist, desto mehr wird das System auslagern und umgekehrt. Wenn der Wert nahe Null liegt, lagert der Kernel keine Daten aus, was zu einer Leistungsminderung führen kann. Dem System zu erlauben, nicht zu sehr vom Swap abhängig zu sein, ist eine hervorragende Möglichkeit, seine Leistung zu steigern und eine robuste Reaktionsfähigkeit zu erzielen.
Alternativ versucht ein Wert für vm.swappiness, der näher bei 100 liegt, mehr Daten in den Swap und weniger in den physischen Speicher zu verlagern. Im Gegensatz zu einem niedrigen bis mittelmäßigen Wert für vm.swappiness, hat ein starkes System-Swapping sehr unerwünschte Auswirkungen, wenn große Datenmengen aktiv in den und aus dem RAM ausgelagert werden.
Überprüfen Sie den aktuellen Swappiness-Wert, indem Sie Folgendes eingeben:
|
1 |
cat /proc/sys/vm/swappiness |
Sie sehen die Ausgabe:
Sie können die Swappiness Ihrer Wahl auch mit dem Befehl sysctl einstellen. Lassen Sie uns den Swappiness-Wert auf 15 festlegen, indem Sie Folgendes eingeben:
|
1 |
sudo sysctl vm.swappiness = 15 |
Sie sehen die Ausgabe:
Bis das System neu gestartet wird, bleiben die Einstellungen unverändert. Fügen Sie die Zeile zu unserer /etc/sysctl.conf Datei hinzu, um den Wert beim Neustart automatisch festzulegen:
|
1 |
sudo nano /etc/sysctl.conf |
Sie können den folgenden Code ganz unten hinzufügen:
|
1 |
Vm.swappiness = 15 |
Speichern und schließen Sie die Datei anschließend.
-
Den Cache-Druck anpassen
Als Nächstes werden wir vfs_cache_pressure ändern, was sich um inode und dentry-Informationen gegenüber anderen Daten kümmert. Diese vfs_cache_pressure-Einstellungen steuern auch die Tendenz des Kernels, den für das Caching des Verzeichnisses verwendeten Speicher zurückzufordern. Navigieren Sie erneut im proc-Dateisystem, um den aktuellen Wert zu überprüfen:
|
1 |
cat /proc/sys/vm/vfs_cache_pressure |
Sie sehen die Ausgabe:
Da die Konfiguration bereits abgeschlossen ist, wird unser System die Inode-Informationen aus dem Cache entfernen. Lassen Sie uns sysctl vm.vfs_cache_pressure auf eine stabilere Einstellung wie diese festlegen:
|
1 |
sudo sysctl vm.vfs_cache_pressure = 60 |
Sie sehen die Ausgabe:
Ähnlich wie bei unserer Swappiness-Einstellung können wir die Konfiguration auch hier ändern:
|
1 |
sudo nano /etc/sysctl.conf |
Fügen Sie unten eine Zeile ein, die den neu erstellten Wert angibt:
|
1 |
Vm.vfs_cache_pressure = 60 |
Speichern und schließen Sie die Datei schließlich.
Fazit
Sie können Swap-Speicher als dedizierte Swap-Partition, als Swap-Datei oder als eine Kombination aus beidem hinzufügen. Sie können Swap-Speicher erstellen und dessen Vorteile nutzen, um Anwendungen nahtlos auszuführen, ohne sich allzu viele Sorgen über Warnungen wegen unzureichendem Arbeitsspeicher machen zu müssen. Obwohl das Erstellen von Swap-Speicher in Systemen mit begrenztem Speicherplatz ein zusätzlicher Vorteil ist, darf es nicht als Alternative für mehr RAM-Speicher betrachtet werden. Denken Sie daran, dass sich der Swap-Speicher auf einer Festplatte befindet, weshalb Sie im Vergleich zum physischen Speicher eine etwas langsamere Zugriffszeit feststellen können.
Hier finden Sie weitere Tutorials auf unserem Blog, die Ihnen den Einstieg mit Ihren Ubuntu-Servern erleichtern:
- Einrichten eines NFS-Mounts auf Ubuntu 20.04
- Installieren von Nginx auf Ubuntu 18.04
- Konfigurieren einer Firewall mit UFW auf Ubuntu 18.04
Viel Spaß beim Computing!










Kommentare
Noch keine Kommentare. Schreiben Sie den ersten.