Verwenden Sie Zswap, um die Leistung auf Linux-PCs mit wenig RAM zu verbessern

Sehen wir der Wahrheit ins Auge, einige von uns rüsten nicht so oft auf. Oder zumindest, als Linux-Nutzer, nehmen wir unsere alten Laptops/Computer wieder in Gebrauch. Viele Distributionen laufen bequem auf Systemen mit wenig RAM (Random Access Memory). Browser hingegen sind nicht so nachsichtig und benötigen mit der Entwicklung des Internets immer mehr Speicher.
Während ein System mit dem LXDE-Desktop-Umfeld nach dem Start nur 150 MB RAM benötigen kann, frisst Chromium, Chrome oder Firefox schnell Hunderte von Megabyte und sogar mehrere Gigabyte RAM, wenn wir ein paar Tabs öffnen.
Und dann passiert es! Die Festplatte beginnt zu knirschen. Die Musik stockt. Wenn wir zu einer anderen Anwendung wechseln, dauert es zig Sekunden, bis sie auf dem Bildschirm erscheint. Sogar der Mauszeiger kann anfangen zu ruckeln. Dies ist der Effekt des Disk Thrashing.
Was ist Disk Thrashing?
Zunächst müssen wir Swap verstehen. Wenn der freie RAM zur Neige geht, werden Anwendungsdaten, auf die das Betriebssystem seit langem nicht mehr zugegriffen hat, in den Swap-Bereich verschoben. Dieser ist oft auf einem physischen Speichermedium. Dadurch kann das Betriebssystem Speicherplatz freigeben, den ein Programm jetzt benötigt. So kann zum Beispiel ein Tab in unserem Browser, den wir in der letzten Stunde nicht aufgerufen haben, auf die Festplatte ausgelagert werden. Jetzt kann der GIMP-Bildbearbeiter ausgeführt werden. Wenn wir ihn schließen und zu diesem alten Tab zurückwechseln, wird er vom Betriebssystem zurück in den Speicher swappt (wird von der Festplatte gelesen und zurück in den Arbeitsspeicher kopiert).

Dieser Mechanismus funktioniert gut, wenn kleine Datenmengen ausgelagert werden. Aber wenn zum Beispiel nur 2 GB RAM zur Verfügung stehen und alle offenen Programme 4 GB benötigen, muss das Betriebssystem ständig swapen. Daten von Speicher zu Disk, von Disk zurück zu Speicher und hin und her bewegen, ist sehr langsam, besonders mit Festplatten. In einer solchen Situation ist das Speichermedium nicht in der Lage, Anfragen schnell genug zu erfüllen. Kurz gesagt, wenn Disk Thrashing auftritt, wird alles sehr langsam.
SSD-Laufwerke sind großartig für Swap
Es gibt einen Mythos, der immer noch im Internet zirkuliert: „Richten Sie niemals Swap auf SSD ein. Es wird Ihr Gerät töten!“ Das war vor ein paar Jahren wahr, ist aber nicht mehr so. Tatsächlich führt das Einrichten von Swap auf einem SSD-Laufwerk zu großartigen Ergebnissen. Wenn der Computer ein SSD-Gerät mit guter Zufalls-Lese-/Schreibgeschwindigkeit (mindestens 300 MB) hat, richten Sie eine Swap-Partition darauf ein und ignorieren Sie den Rest dieses Artikels. Wenn das Betriebssystem 1 GB Daten swappen muss, dauert das weniger als fünf Sekunden, während es auf einer Festplatte mehr als eine Minute dauern würde.
So reduzieren Sie Disk Thrashing erheblich auf Linux

Glücklicherweise ist der größte Teil der in RAM gespeicherten Daten sehr komprimierbar. Das bedeutet, dass wir 200 MB Daten im Speicher nehmen und sie komprimieren können, um die Größe auf 100 MB zu reduzieren. Folglich bedeutet dies, dass das System beim Swappen viel weniger Daten auf die Festplatte schreiben muss.
Stellen Sie sich vor, dass Sie anstatt dreißig Sekunden zu warten, um zu einem Programm zu wechseln, nur fünfzehn Sekunden warten müssen. Es ist eine spürbare Verbesserung. Aber tatsächlich ist der Geschwindigkeitsschub viel signifikannter (vielleicht müssen Sie weniger als zehn Sekunden warten), weil das Werkzeug, das wir verwenden werden, ausgeklügelter ist. Es sendet intelligent nur die Stücke, die nicht komprimierbar sind, auf die Festplatte und hält den Rest in einem reservierten Teil des Speichers. Wenn Sie mehr über die internen Abläufe erfahren möchten, besuchen Sie die offizielle Linux-Kernel-Seite über zswap.
Eine einfache Version der Vorteile, die wir durch die Verwendung von zswap erhalten, ist, dass wir anstelle von schrecklichen Verlangsamungen, wenn der Speicher erschöpft ist, nur tolerierbare, milde Verlangsamungen erleben, die Sekunden statt Minuten dauern.
So aktivieren Sie zswap auf Debian-basierten Distributionen (Ubuntu, Linux Mint usw.)
Öffnen Sie eine Terminalanwendung und führen Sie diesen Befehl aus, um die Konfigurationsdatei der Grub-Bootloader-Vorlage zu bearbeiten:
sudoedit /etc/default/grub
Navigieren Sie mit den Pfeiltasten zu der Zeile, die mit „GRUB_CMDLINE_LINUX_DEFAULT“ beginnt. Fügen Sie innerhalb der Anführungszeichen den folgenden Text hinzu:
zswap.enabled=1
Zum Beispiel wird eine Zeile, die GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" war, zu GRUB_CMDLINE_LINUX_DEFAULT="quiet splash zswap.enabled=1".
Um die Datei zu speichern, drücken Sie Ctrl + X, gefolgt von „y“ und dann Enter.
Erstellen Sie die neuen Grub-Konfigurationsdateien gemäß der zuvor bearbeiteten Vorlage:
sudo update-grub
Starten Sie neu, und das zswap-Modul wird automatisch aktiviert.
So aktivieren Sie zswap auf Fedora und OpenSUSE
Das Verfahren hier ist dem in der vorherigen Sektion ähnlich, hat aber einige Wendungen. Bearbeiten Sie die Grub-Vorlagenkonfigurationsdatei.
sudoedit /etc/default/grubFügen Sie zswap.enabled=1 innerhalb der Anführungszeichen, in der Zeile, die mit GRUB_CMDLINE_LINUX beginnt, hinzu.

Drücken Sie Ctrl + X, gefolgt von „y“ und dann Enter, um die Datei zu speichern.
Je nachdem, ob Ihr Computer von einem BIOS- oder UEFI-System bootet, wird die Grub-Konfigurationsdatei an einem anderen Ort generiert. Um zu finden, wo sie sich aktuell befindet, geben Sie den folgenden Befehl ein:
sudofind/boot/-name grub.cfg
Verwenden Sie den hier ausgegebenen Pfad im nächsten Befehl. Zum Beispiel war in unserem Fall der gefundene Pfad „/boot/grub2/grub.cfg“, also fügen wir ihn am Ende des nächsten Befehls nach „-o“ hinzu:
sudo grub2-mkconfig -o/boot/grub2/grub.cfgStarten Sie den Computer neu. Überprüfen Sie nach dem Neustart, ob das Modul aktiv ist:
cat/sys/module/zswap/parameters/enabledWenn die Ausgabe „Y“ ist, funktioniert das Modul korrekt.
So aktivieren Sie zswap auf Arch Linux
Installieren Sie das Paket systemd-swap:
sudo pacman -Sy systemd-swap
Lassen Sie dieses Paket beim Booten wirken:
sudo systemctl enable systemd-swapStarten Sie es jetzt, ohne neu zu starten:
sudo systemctl start systemd-swapUm zu überprüfen, ob alles wie erwartet funktioniert hat, vergewissern Sie sich, dass das zswap-Modul aktiviert ist:
cat/sys/module/zswap/parameters/enabled
Wenn die Ausgabe „Y“ ist, bedeutet dies, dass das Modul aktiv ist.
So aktivieren Sie zswap auf verschiedenen Distributionen
Allgemein gesagt, ist das Aktivieren von zswap beim Booten so einfach wie das Hinzufügen von zswap.enabled=1 zu Ihren Kernelparametern. Die meisten Distributionen verwenden standardmäßig Grub2 als Bootloader. Wenn Sie einen anderen Bootloader verwenden, suchen Sie die Konfigurationsdatei, in der er die Kernelparameter speichert, die beim Booten übergeben werden, und fügen Sie zswap.enabled=1 als zusätzlichen Parameter hinzu.
Ein weiterer Parameter, mit dem Sie experimentieren können, um herauszufinden, ob er die Leistung für Ihren spezifischen Anwendungsfall verbessert, ist zswap.max_pool_percent=20. Sie können es anpassen, indem Sie die Zahl am Ende ändern: zum Beispiel zswap.max_pool_percent=50.
Fügen Sie dies zu denselben Kernelparametern hinzu, bei denen Sie zswap.enabled=1 hinzufügen. Es wird empfohlen, nicht über 50 % zu gehen, da mehr als das nachteilige Auswirkungen auf Systeme mit wenig RAM haben kann.
Fazit
Wenn Sie häufig RAM auf Ihrem alten System ausgehen und die lästigen Effekte des Disk Thrashing erleben mussten, werden Sie sofort den Unterschied bemerken und zu schätzen wissen. Anstatt schrecklicher Verlangsamungen erleben Sie milde, vorübergehende Verzögerungen, die einige Sekunden (statt Minuten) dauern, wenn das Betriebssystem eine große Menge Daten auf die Festplatte swappen muss. Sie werden in der Lage sein, Ihre Arbeit in Situationen fortzusetzen, in denen Sie zuvor Ihren Computer während der Zeit, in der er swapte, überhaupt nicht nutzen konnten.