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.
$ sudo free -h
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:
$ lsblk
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:
$ lsblk
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:
$ sudo mkswap /dev/vdb1
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:
$ sudo blkid
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:
$ sudo swapon -s
Beispielausgabe:
Filename Type Size Used Priority /swapfile file 2457596 268 -2 /swapfile.img file 2097148 0 -3
Aktiviere die Block-Storage-Partition als Swap:
$ sudo swapon /dev/vdb1
Überprüfe erneut die Swap-Geräte:
$ sudo swapon -s
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:
$ sudo nano /etc/fstab
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:
$ sudo blkid
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:
$ sudo sysctl -p
Swap-Speicher testen
Liste die aktiven Swap-Volumes auf:
$ sudo swapon -s
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:
$ sudo swapon -a
Überprüfe die Speichernutzung und stelle sicher, dass Swap aktiv ist:
$ sudo free -h
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:
$ sudo swapoff /swapfile
Überprüfe mit der Liste der Swap-Geräte, dass die Datei deaktiviert wurde:
$ sudo swapon -s
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.


