Mithilfe eines Swap-Speichers lagert man temporäre Daten in eine Auslagerungsdatei aus, anstatt in den RAM zu schreiben. Das ist vor allem dann sinnvoll, wenn wenig Arbeitsspeicher zur Verfügung steht und man Abstürze wegen zu wenig Arbeitsspeicher umgehen möchte.

Was ist Swap-Speicher?

In Situationen, in denen der physische Arbeitsspeicher vollständig ausgelastet ist, kann der Swap-Speicher einspringen, um zusätzlichen Speicherplatz bereitzustellen. Dies geschieht durch Verschieben von Daten, die nicht aktiv verwendet werden, auf die Festplatte. Obwohl der Zugriff auf die Festplatte langsamer ist als auf den RAM, ermöglicht der Swap-Speicher dennoch das gleichzeitige Ausführen mehrerer Anwendungen, ohne dass es zu Abstürzen oder Verlangsamungen kommt.

Wenn der RAM eines Computers vollständig ausgelastet ist, wählt das Betriebssystem bestimmte Daten aus, die vorübergehend auf die Festplatte verschoben werden können. Dieser Prozess nennt sich Auslagerung oder Swapping. Die ausgelagerten Daten können später bei Bedarf wieder in den RAM zurückgebracht werden. Dieser dynamische Austausch von Daten ermöglicht eine effiziente Nutzung der vorhandenen Ressourcen.

Die Größe des Swap-Speichers kann je nach den Anforderungen und dem Nutzungsszenario eines Servers angepasst werden. Die richtige Konfiguration des Swap-Speichers ist entscheidend, um Engpässe zu vermeiden und die Reaktionsfähigkeit des Systems sicherzustellen.

Speicherplatz und Arbeitsspeicher überprüfen

Mit folgendem Befehl kannst du unter Debian in der Shell überprüfen, wie viel Arbeitsspeicher noch zur Verfügung steht:

free -h

Die Ausgabe sieht dann in etwa so aus:

root@vps:~# free -h
               total        used        free      shared  buff/cache   available
Mem:           1.9Gi       718Mi       762Mi        11Mi       645Mi       1.2Gi
Swap:             0B          0B          0B

Der Server in diesem Beispiel hat insgesamt 2 GB RAM, von denen 1.2 GB für das System verwendet werden können, wobei 718 MB derzeit verwendet werden und somit noch 762 MB zur Verfügung stehen.

Mit folgendem Befehl kannst dir Informationen über den Festplattenspeicher ausgeben lassen:

df -h

Die Ausgabe sieht dann in etwa so aus:

root@vps:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            965M     0  965M   0% /dev
tmpfs           197M  552K  197M   1% /run
/dev/vda3        39G  3.4G   34G  10% /
tmpfs           984M  1.3M  983M   1% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/vda2       974M   87M  820M  10% /boot
tmpfs           197M     0  197M   0% /run/user/0

Wichtig ist in dieser Ausgabe nur die Zeile, bei welcher das Filesystem mit einem / beginnt und bei "Mounted on" ebenfalls ein / steht, das ist die eigentliche Festplatte. Sie ist 39 GB groß und es stehen noch 34 GB zur Verfügung. Genug Speicherplatz für eine Swap-Auslagerung.

Swap-Auslagerung erstellen

Da nun die notwendigen Informationen über das System bekannt sind, kann die Swap-Datei angelegt werden. Das geschieht mit folgendem Befehl, wobei die Größe der Datei entsprechend angepasst werden muss. Ich entscheide mich für 2 GB:

fallocate -l 2G /swapfile

Dieser Datei werden jetzt noch die Berechtigungen so vergeben, dass nur Root darauf Zugriff hat:

chmod 600 /swapfile

Diese Swap-Datei wird jetzt als solche für das System markiert:

mkswap /swapfile

Die Swap-Datei wird jetzt noch aktiv geschaltet:

swapon /swapfile

Mit folgendem Befehl kannst du jetzt überprüfen, ob deine Swap-Datei ordnungsgemäß angelegt wurde und aktiv ist:

swapon --show

Die Ausgabe sollte in etwa so aussehen:

root@vps:~# swapon --show
NAME      TYPE SIZE USED PRIO
/swapfile file   2G   0B   -2

Die Swap-Datei ist jetzt aktiv. Jedoch nur solange der Server eingeschaltet ist und läuft. Die Swap-Datei muss also noch dauerhaft gemacht werden. Dazu sicherst du zunächst folgende Konfigurationsdatei:

cp /etc/fstab /etc/fstab.bak

Und fügst hier nun eine entsprechende Zeile mit folgendem Befehl hinzu:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Die Swap-Datei ist nun permanent aktiv, auch nach einem Neustart.

Swap-Datei konfigurieren

Standardmäßig springt der Swap-Speicher ein, sobald noch 60 % des physischen Arbeitsspeichers zur Verfügung steht. Dieser Wert sollte für einen Server ein wenig geringer eingestellt werden. Verwende dazu folgenden Befehl, in diesem Beispiel wird der Swap erst bei noch 25 % freiem Arbeitsspeicher verwendet:

sysctl vm.swappiness=25

Damit auch diese Einstellung permanent ist, wird noch die Konfigurationsdatei angepasst:

nano /etc/sysctl.conf

Füge hier an das Ende folgende Zeile hinzu:

vm.swappiness=25

Ein weiterer damit verbundener Wert der angepasst werden sollte ist "vfs_cache_pressure". Dabei geht es um den Cache von Zugriffsdaten auf das Dateisystem. Das Abfragen dieser Daten ist in der Regel sehr aufwendig und wird sehr häufig angefordert. Daher ist es empfehlenswert, diese Informationen im Cache zu speichern:

sysctl vm.vfs_cache_pressure=50

Diese Änderung beeinflusst, wie das System den Zwischenspeicher für Informationen über Dateisysteme verwaltet. Durch Setzen des Werts auf 50 wird festgelegt, wie stark das System dazu neigt, Inode- und Dentry-Informationen im Vergleich zu anderen Daten zu zwischenspeichern. Ein niedrigerer Wert, wie 50 in diesem Fall, bedeutet, dass das System eher geneigt ist, diese Informationen im Cache zu behalten, was die Leistung verbessert, insbesondere wenn häufig auf das Dateisystem zugegriffen wird.
Auch diese Änderung muss noch permanent eingestellt werden:

nano /etc/sysctl.conf

Füge hier an das Ende folgende Zeile hinzu:

vm.vfs_cache_pressure=50

Glückwunsch, du hast deinen Swap-Speicher als Arbeitsspeicher-Auslagerung nun erfolgreich eingerichtet.

Größe der Swap-Speicher anpassen

Die Größe vom Swap lässt sich im Nachhinein ganz einfach noch anpassen. Dazu deaktivierst du den Swap zunächst:

swapoff /swapfile

Vergib jetzt eine neue beliebige Größe:

sudo fallocate -l XG /swapfile

Aktiviere den Swap wieder:

sudo mkswap /swapfile
sudo swapon /swapfile

Überprüfe die Änderung mit folgendem Befehl:

free -h

Die Ausgabe sollte die aktualisierte Swap-Größe anzeigen.

Swap-Speicher löschen

Solltest du deinen Swap-Speicher wieder löschen wollen, gehst du wie folgt vor.

Deaktiviere die Swap-Datei:

swapoff /swapfile

Lösche die Datei:

rm /swapfile

Entferne die Verlinkung auf den Swap-Speicher aus der "/etc/fstab" Datei:

nano /etc/fstab

Hier wird folgende Zeile rausgelöscht:

/swapfile none swap sw 0 0

Die Swap-Datei wurde nun wieder entfernt. Du kannst das überprüfen, indem du den Befehl free -h in der Shell ausführst. Der Swap-Speicher sollte hier nicht mehr angezeigt werden.

Bei Fragen oder Anregungen freue ich mich natürlich über eure Kommentare.

Über mich

Ich bin Janis (aka. EurenikZ), 25 Jahre alt und komme aus der Nähe von Frankfurt am Main. Ich habe eine abgeschlossene IHK-Ausbildung zum Fachinformatiker für Systemintegration und arbeite als Junior IT-Administrator in einem IT-Systemhaus. Neben meinem IT-Blog beschäftige ich mich viel mit diversen IT-Themen und meinen Webseiten sowie Telegram Bots und biete IT-Dienstleistungen an.

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten.

Durchschnittliche Bewertung 5 / 5. Anzahl Bewertungen: 1

Bisher keine Bewertungen. Sei der Erste, der diesen Beitrag bewertet!

Es tut mir Leid, dass der Beitrag für dich nicht hilfreich war!

Wie kann ich diesen Beitrag verbessern?

Hinterlasse einen Kommentar

  • Manchmal ist es notwendig, sich in die Shell eines Docker-Containers zu schalten, um dort beispielsweise weitere Konfigurationen vornehmen zu können. Wie du dich in eine Container-Shell einloggst, zeige ich dir in diesem Beitrag. Begib dich zunächst in das Verzeichnis, in[...]

    12.03.2024 18:37

    44
  • Beim Löschen von Dateien in Nextcloud landen diese im Papierkorb und bleiben dort, bis dieser manuell geleert wird. Möchte man Dateien im Papierkorb automatisch nach einer bestimmten Zeit löschen lassen, muss die Konfiguration entsprechend angepasst werden. Die Papierkorb-Funktion ist[...]

    10.12.2023 20:57

    93
  • Nextcloud bietet neben dem klassischen Datenspeicher auch eine Office-Variante an, um Textbearbeitung, Tabellenkalkulation und mehr auf dem eigenen Server zu betreiben. Wie du die Nextcloud Office App installierst, erkläre ich dir in diesem Video. Melde dich bei deiner Nextcloud in[...]

    02.12.2023 22:27

    74
  • Manchmal ist es notwendig, sich in die Shell eines Docker-Containers zu schalten, um dort beispielsweise weitere Konfigurationen vornehmen zu können. Wie du dich in eine Container-Shell einloggst, zeige ich dir in diesem Beitrag. Begib dich zunächst in das Verzeichnis, in[...]

    12.03.2024 18:37

    44
  • Beim Löschen von Dateien in Nextcloud landen diese im Papierkorb und bleiben dort, bis dieser manuell geleert wird. Möchte man Dateien im Papierkorb automatisch nach einer bestimmten Zeit löschen lassen, muss die Konfiguration entsprechend angepasst werden. Die Papierkorb-Funktion ist[...]

    10.12.2023 20:57

    93