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
Passende Infrastruktur bei centron
Ubuntu-Server ohne eigene Hardware: ccloud³ VMs mit vollem Root-Zugriff ab 3,12 € im Monat, stundengenau abgerechnet und in Sekunden bereit. Cloud Server mieten →
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 -hBeispielausgabe:
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.imgSetze die Dateiberechtigungen so, dass nur root darauf zugreifen kann:
$ sudo chmod 0600 /swapfile.imgFormatiere die Datei als Swap:
$ sudo mkswap /swapfile.imgBeispielausgabe:
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:
$ lsblkBeispielausgabe:
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 gptLege 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:
$ lsblkBeispielausgabe:
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/vdb1Beispielausgabe:
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 blkidBeispielausgabe:
/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 -sBeispielausgabe:
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 -sBeispielausgabe:
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/fstabFüge am Ende der Datei folgende Swapfile-Konfiguration hinzu:
/swapfile.img swap swap defaults 0 0Diese 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 blkidBeispielausgabe:
/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 0Ersetze 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.confAusgabe:
vm.swappiness = 50
Lade die Konfiguration neu, um die Änderungen anzuwenden:
$ sudo sysctl -pSwap-Speicher testen
Liste die aktiven Swap-Volumes auf:
$ sudo swapon -sBeispielausgabe:
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 -hBeispielausgabe:
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 -sBeispielausgabe:
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.
Testen Sie Ihr Setup auf ccloud³
Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.