Swap-Speicher unter Ubuntu 20.04 mit Swapfile und Block Storage hinzufügen

Swap-Speicher ist ein Speicherbereich, der als virtueller Arbeitsspeicher dient, wenn der RAM deines Servers vollständig ausgelastet ist. Er verhindert Systemabstürze, indem weniger häufig genutzte Prozesse vom RAM in den Swap-Bereich verschoben werden. So bleibt das System auch bei hoher Last stabil.

In dieser Anleitung erfährst du, wie du unter Ubuntu 20.04 Swap-Speicher mithilfe einer Swap-Datei und Block Storage einrichtest, um die verfügbaren Speicherressourcen zu erweitern.

Voraussetzungen

Bevor du beginnst, stelle sicher, dass du Folgendes hast:

  • Einen Ubuntu 20.04 Server
  • Ein bestehendes Block-Storage-Gerät
  • SSH-Zugang als Nicht-Root-Benutzer mit sudo-Rechten

Vorhandenen Swap-Speicher prüfen

Überprüfe zuerst die aktuelle Swap-Nutzung, bevor du weiteren Speicher hinzufügst. Verwende dazu den Befehl free, um Informationen zu RAM und Swap anzuzeigen.

Beispielausgabe:

              total        used        free      shared  buff/cache   available
Mem:          955Mi       317Mi       201Mi       1.2Mi       598Mi       638Mi
Swap:         2.3Gi       268Ki       2.3Gi

In diesem Beispiel ist bereits ein Swap-Speicher von 2 GB eingerichtet.

Swap-Speicher erstellen

Swap-Speicher kann entweder auf der Festplatte deines Servers oder auf einem angeschlossenen Block-Storage-Gerät eingerichtet werden. Die folgenden Abschnitte beschreiben beide Varianten.

Swap mit einer Swap-Datei erstellen

Erstelle eine neue Swap-Datei von 2 GB im Wurzelverzeichnis mit fallocate:

$ sudo fallocate -l 2G /swapfile.img

Setze die Dateiberechtigungen so, dass nur root darauf zugreifen kann:

$ sudo chmod 0600 /swapfile.img

Formatiere die Datei als Swap:

$ sudo mkswap /swapfile.img

Beispielausgabe:

Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=2ed3e083-fac2-4571-bbdf-e9967aa1fc03

Swap mit Block Storage erstellen

Liste die verfügbaren Speichergeräte mit lsblk auf. Die neue Festplatte erscheint als /dev/vdb ohne Partitionen:

Beispielausgabe:

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0     11:0    1 1024M  0 rom
vda    253:0    0   25G  0 disk
├─vda1 253:1    0  512M  0 part /boot/efi
└─vda2 253:2    0 24.5G  0 part /
vdb    253:16   0   40G  0 disk

Initialisiere das Block-Storage-Volume mit einer GPT-Partitionstabelle:

$ sudo parted -s /dev/vdb mklabel gpt

Lege eine neue Partition über den gesamten Speicherbereich an:

$ sudo parted -s /dev/vdb unit mib mkpart primary 0% 100%

Überprüfe die Geräte erneut:

Beispielausgabe:

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0     11:0    1 1024M  0 rom  
vda    253:0    0   25G  0 disk 
├─vda1 253:1    0  512M  0 part /boot/efi
└─vda2 253:2    0 24.5G  0 part /
vdb    253:16   0   40G  0 disk 
└─vdb1 253:17   0   40G  0 part 

Formatiere die Partition als Swap:

Beispielausgabe:

Setting up swapspace version 1, size = 40 GiB (42947571712 bytes)
no label, UUID=7b3b6fa6-b344-41bd-b25b-f8657caa36b4

Zeige die Blockgeräte mit blkid an und notiere dir die UUID:

Beispielausgabe:

/dev/vda2: UUID="95e88749-c308-4c15-aca0-f47049d0c699" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="48874572-7e1f-4766-93e7-431038bd78f3"
/dev/vda1: UUID="D587-7645" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="96ca28e5-4696-482c-9359-24b87f2ea53e"
/dev/vdb1: UUID="ca230c16-b5a4-44e6-b5a8-930bb1f33fcf" TYPE="swap" PARTLABEL="primary" PARTUUID="7897c216-dc99-4e91-be17-abc1a0dba849"

Swap-Speicher aktivieren

Aktiviere die Swap-Datei mit swapon:

$ sudo swapon /swapfile.img

Überprüfe den aktiven Swap:

Beispielausgabe:

Filename                                Type            Size            Used            Priority
/swapfile                               file            2457596         268             -2
/swapfile.img                           file            2097148         0               -3

Aktiviere die Block-Storage-Partition als Swap:

Überprüfe erneut die Swap-Geräte:

Beispielausgabe:

Filename                                Type            Size            Used            Priority
/swapfile                               file            2457596         268             -2
/swapfile.img                           file            2097148         0               -3
/dev/vdb1                               partition       41940988        0               -4

fstab für automatisches Swap-Mounten konfigurieren

Die Datei fstab bestimmt, wie Dateisysteme beim Systemstart eingebunden werden. So richtest du die automatische Aktivierung des Swap-Speichers ein:

Sichere zuerst die ursprüngliche Konfiguration:

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

Öffne die Konfigurationsdatei mit einem Editor wie nano:

Füge am Ende der Datei folgende Swapfile-Konfiguration hinzu:

/swapfile.img swap swap defaults 0 0

Diese Eintragung aktiviert das Swapfile beim Systemstart. Erklärung:

  • swap: definiert den Dateisystemtyp Swap
  • swap: legt den Mount-Punkt fest
  • 0: deaktiviert Backups für das Dateisystem
  • 0: deaktiviert Dateisystemprüfungen für Swap

Zeige anschließend die Blockgeräteinformationen an und kopiere die UUID von /dev/vdb1:

Beispielausgabe:

/dev/vda2: UUID="95e88749-c308-4c15-aca0-f47049d0c699" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="48874572-7e1f-4766-93e7-431038bd78f3"
/dev/vda1: UUID="D587-7645" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="96ca28e5-4696-482c-9359-24b87f2ea53e"
/dev/vdb1: UUID="ca230c16-b5a4-44e6-b5a8-930bb1f33fcf" TYPE="swap" PARTLABEL="primary" PARTUUID="7897c216-dc99-4e91-be17-abc1a0dba849"

Füge den Eintrag für die Swap-Partition mit der UUID hinzu:

UUID=ca230c16-b5a4-44e6-b5a8-930bb1f33fcf swap swap sw 0 0

Ersetze die UUID durch den Wert deines Servers. Danach wird der Swap-Speicher bei jedem Systemstart automatisch eingebunden.

Swappiness konfigurieren

Der Swappiness-Wert legt fest, wie intensiv das System Swap im Vergleich zu RAM nutzt. Bedeutung der Werte:

  • 0: Swap wird nur im Notfall genutzt
  • 1–49: Swap wird sparsam verwendet, RAM bleibt bevorzugt
  • 50: Ausgewogenes Verhältnis zwischen RAM und Swap
  • 51–99: Aggressiver Einsatz von Swap
  • 100: Bevorzugt Swap stark, RAM wird schnell freigegeben

Lege den Swappiness-Wert fest, indem du ihn in /etc/sysctl.conf einfügst:

$ echo "vm.swappiness = 50" | sudo tee -a /etc/sysctl.conf

Ausgabe:

vm.swappiness = 50

Lade die Konfiguration neu, um die Änderungen anzuwenden:

Swap-Speicher testen

Liste die aktiven Swap-Volumes auf:

Beispielausgabe:

Filename                                Type            Size            Used            Priority
/swapfile                               file            2457596         268             -2
/swapfile.img                           file            2097148         0               -3
/dev/vdb1                               partition       41940988        0               -4

Aktiviere alle in /etc/fstab definierten inaktiven Swap-Volumes:

Überprüfe die Speichernutzung und stelle sicher, dass Swap aktiv ist:

Beispielausgabe:

              total        used        free      shared  buff/cache   available
Mem:          955Mi       348Mi       155Mi       1.2Mi       613Mi       607Mi
Swap:          44Gi       268Ki        44Gi

Swap-Speicher entfernen

Um Swap zu deaktivieren, verwende swapoff mit dem Pfad zur Datei oder Partition. Beispiel: die Standard-Swap-Datei deaktivieren:

Überprüfe mit der Liste der Swap-Geräte, dass die Datei deaktiviert wurde:

Beispielausgabe:

Filename                                Type            Size            Used            Priority
/swapfile.img                           file            2097148         0               -2
/dev/vdb1                               partition       41940988        0               -3

Fazit

Du hast erfolgreich Swap-Speicher unter Ubuntu 20.04 eingerichtet und damit die verfügbaren Systemressourcen erweitert. Auch wenn Swap langsamer ist als RAM, trägt er zur Stabilität bei, indem weniger häufig genutzte oder speicherintensive Prozesse aus dem Hauptspeicher ausgelagert werden.

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren:

Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

Passbolt auf Linux installieren & sicher konfigurieren

Security, Tutorial
Passbolt auf Linux-Distributionen installieren und einrichten Passbolt ist ein Open-Source-Passwortmanager, der die sichere Speicherung und Verwaltung von Passwörtern sowie sensiblen Daten mit Ende-zu-Ende-Verschlüsselung ermöglicht. Er funktioniert hauptsächlich als Browser-Erweiterung für…