Website-Suche

So aktivieren Sie Zswap für Ubuntu 24.04-PCs mit begrenztem RAM


Dieses Tutorial zeigt, wie Sie das ZSWAP-Kernelmodul aktivieren, um den nutzbaren RAM in Ihrem Ubuntu-Computer oder Laptop zu erhöhen.

Wie Sie wissen, enthält Ubuntu Linux normalerweise einen Auslagerungsbereich (entweder Festplattenpartition oder Auslagerungsdatei) auf der Festplatte. Es kann für den Ruhezustand und als erweiterter Speicherplatz verwendet werden. Wenn das System mehr Speicherressourcen benötigt und der RAM voll ist, werden die inaktiven Seiten im Speicher in den Swap-Space verschoben.

Swap Space kann für Computer mit begrenztem RAM hilfreich sein. Aber es ist langsam! Wenn zu viel Swap verwendet wird, wird die Gesamtsystemleistung beeinträchtigt.

Als Workarounds enthält Linux zwei Kernel-Module: zram und zswap. Anstatt inaktive Seiten vom Speicher auf die Festplatte (Swap-Space) zu verschieben, machen sie ähnliche Dinge, indem sie die Daten in dynamisch zugewiesenen RAM-Speicher komprimieren.

Da die Daten komprimiert sind, benötigen sie weniger physischen Speicherplatz, wodurch Ihr RAM noch besser nutzbar ist. Gleichzeitig bleibt der reibungslose Betrieb des Systems gewährleistet, da das Lesen von komprimierten Daten im RAM normalerweise schneller ist als das Lesen von Swap-Daten auf der Festplatte.

zram und zswap

zram erstellt ein Blockgerät im RAM, das als Auslagerungsspeicher (oder als Allzweck-RAM-Disk) fungiert. Wenn das System inaktive Seiten auslagern muss, komprimiert ZRAM sie im Blockgerät. Es ist kein Austausch auf der Festplatte erforderlich.

zswap ist ein leichter komprimierter RAM-Cache für Swap-Seiten. Es versucht, die Seiten, die zum Auslagern benötigt werden, zu komprimieren und in einem Speicherpool im RAM zu speichern. Schlecht komprimierbare Daten werden direkt auf die Festplatte (Swap-Space) geschrieben. Und wenn der Speicherpool voll oder der RAM erschöpft ist, wird die zuletzt verwendete Seite dekomprimiert und auf die Festplatte geschrieben (Swap). Ein Swap-Speicherplatz auf der Festplatte ist erforderlich!

Sowohl zram als auch zswap verwenden zunächst KEINEN RAM. Sie erhöhen oder verringern die RAM-Nutzung je nach Bedarf dynamisch. Der Unterschied besteht darin, dass ZRAM als Auslagerungsbereich mit höherer Priorität fungiert, sodass der Ruhezustand nicht normal funktioniert. Während zswap einen Swap-Speicherplatz auf der Festplatte benötigt, um damit funktionieren zu können.

Die Verwendung von zram oder zswap ist eine gute Wahl für Computer mit wenig RAM oder für große Apps/Spiele, die mehr Speicher als physische RAM-Kapazität benötigen.

Wenn Sie jedoch über ausreichend RAM verfügen, das selten Swap-Speicherplatz nutzt, oder wenn Sie an die CPU gebunden sind (ein Engpass durch die CPU), sollten Sie die Finger davon lassen, da sie mehr CPU für die Komprimierung/Dekomprimierung verbrauchen.

Option 1: Zswap zur Laufzeit aktivieren

Wenn Sie eine Swap-Funktion für den Ruhezustand benötigen, ist zswap die bessere Wahl. In allen aktuellen Ubuntu-Versionen ist das Kernelmodul standardmäßig geladen. Sie müssen lediglich die Funktion aktivieren und einige Parameteränderungen vornehmen.

1. Drücken Sie zunächst Strg+Alt+T auf der Tastatur, um ein Terminalfenster zu öffnen. Führen Sie dann den Befehl aus, um die aktuellen Zswap-Modulparameter zu überprüfen:

systool -v -m zswap

Führen Sie sudo apt install sysfsutils aus, wenn der Befehl nicht gefunden wird. In der Terminalausgabe sollte „enabled=„N““ gedruckt werden, was bedeutet, dass die Funktion nicht aktiviert ist.

Alle Modulparameter können durch die Konfigurationsdateien im Verzeichnis /sys/module/zswap/parameters/ geändert werden. Dazu gehören:

  • accept_threshold_percent – Der prozentuale Schwellenwert, bei dem zswap wieder anfangen würde, Seiten zu akzeptieren, nachdem es voll war. Standardmäßig 90 % in Ubuntu.
  • compressor – Legen Sie den Komprimierungsalgorithmus fest. Mögliche Werte sind zstd, deflate, lzo, 842, lz4 und lz4hc. Siehe den Vergleich.
  • enabled – Funktion aktivieren/deaktivieren, indem der Wert 0 oder 1 eingestellt wird.
  • exclusive_loads – macht Zswap-Einträge ungültig, wenn Seiten geladen werden. Zu den Werten gehören 0 oder 1.
  • max_pool_percent – der maximale Prozentsatz des physischen Speichers, den zswap beanspruchen kann.
  • zpool – steuert die Verwaltung des komprimierten Speicherpools. Zu den Werten gehören zbud (2:1 oder weniger Komprimierungsverhältnis), z3fold (3:1 oder weniger), zsmalloc (komplexere Methode seit Kernel 6.3).

2. Um zswap zu aktivieren, schreiben Sie einfach „1“ in die enabled-Konfigurationsdatei, indem Sie den folgenden Befehl im Terminal ausführen:

echo 1 | sudo tee /sys/module/zswap/parameters/enabled

Und Sie können den zpool-Wert mit dem folgenden Befehl in zsmalloc ändern:

echo zsmalloc | sudo tee /sys/module/zswap/parameters/zpool

Sie können auch die oben genannten Befehle ausführen, um weitere Zswap-Parameter zu konfigurieren. Führen Sie zur Überprüfung einfach den Befehl systool in Schritt 1 erneut aus:

3. Um die Zswap-Statistiken anzuzeigen, führen Sie einfach den folgenden Befehl im Terminal aus:

sudo grep -r . /sys/kernel/debug/zswap

Option 2: Aktivieren Sie zswap beim Start

Die vorherigen Befehle aktivieren zswap zur Laufzeit, es bleibt jedoch nach dem Systemneustart nicht bestehen.

Um es dauerhaft zu machen, können Sie den Grub-Bootloader so konfigurieren, dass er die Kernel-Parameter beim Start lädt.

1. Öffnen Sie zunächst das Terminal (Strg+Alt+T) und führen Sie den Befehl aus, um die Konfigurationsdatei für Grub zu bearbeiten:

sudo nano /etc/default/grub

Hier verwende ich den Befehlszeilen-Texteditor nano, der in den meisten Desktop-Umgebungen funktioniert. Sie können es durch gnome-text-editor für 24.04 mit Standard-GNOME, gedit für 22.04 und früher oder andere Editoren ersetzen, abhängig von Ihrem Desktop.

2. Wenn die Datei geöffnet wird, fügen Sie die folgenden Kernel-Parameter als Wert von „GRUB_CMDLINE_LINUX_DEFAULT“ hinzu:

zswap.enabled=1 zswap.zpool=zsmalloc

Sie können nach Bedarf weitere Zswap-Parameter hinzufügen/entfernen (z. B. zswap.compressor=lzo) und diese durch Leerzeichen trennen. Drücken Sie abschließend Strg+S zum Speichern und Strg+X, um den Nano-Texteditor zu verlassen.

3. Nachdem Sie die Änderungen gespeichert haben, führen Sie den folgenden Befehl aus, um die Grub-Startmenüeinträge neu zu generieren:

sudo update-grub

Tipps: Wenn Sie den Grub-Customizer installiert haben, starten Sie einfach die App und navigieren Sie zur Seite „Allgemeine Einstellungen“, um die Kernel-Parameter hinzuzufügen, und klicken Sie schließlich auf „Speichern“, um die Änderungen zu übernehmen.

Verwandte Artikel