Cleancache vs zram?

9

Ich habe hier einen alten Laptop mit nur 512 MB RAM. Seit einigen Kernel-Releases verwende ich zram , um 256 MB davon in eine komprimierte Ramdisk zu konvertieren, die dann als Swap verwendet wird. Dies hat sich als sehr erfolgreich erwiesen und das System reagiert viel schneller. Die (festplattengestützte) Swap-Nutzung ist erheblich zurückgegangen, was das System zuvor verlangsamt hat.

Seit Linux 3.0 enthält der Kernel auch einen Cleancache, der durch die Verwendung von zram als Backend Seiten aus dem Seitencache transparent komprimieren soll. Soweit ich sehen kann, unterscheidet sich dies von zram .

Soll ich beide auf meinem Laptop aktivieren? Oder ersetzt Cleancache tatsächlich die Zram- Lösung?

Edit: Ich habe dieses gefunden gentoo Forum Link , wo es scheint , dass ich auch ermöglichen , CONFIG_ZCACHEdie dann macht Cleancache Verwendung zram etwas ähnliches zu erhalten , was ich vorher hatte. Es scheint also, dass ich all dies aktiviere und zram danach nicht explizit verwende. Kann das jemand bestätigen?

Lytenyn
quelle

Antworten:

9

Zram erstellt ein Blockgerät, das von einem komprimierten RAM unterstützt wird. Sie können dieses Blockgerät zum Tauschen verwenden. Normalerweise führt der Speicherdruck zuerst dazu, dass der Cache verworfen wird. Erst wenn der größte Teil des Caches freigegeben wurde und der Speicher noch knapp ist, beginnt das System mit dem Auslagern.

Mit CleanCache können Seiten aus dem Seitencache in ein Back-End migriert werden, z. B. xen tmem, das vom Hypervisor verwaltet und von mehreren VM-Gästen gemeinsam genutzt wird. Ziel ist es, mehreren VM-Gästen, die dieselben Daten zwischenspeichern, die Verwendung desselben RAMs zu ermöglichen, anstatt dass jeder über einen eigenen Cache mit einer eigenen Kopie derselben Daten verfügt.

ZCache ist ein weiteres CleanCache-Backend. Anstatt den Speicher zum Halten an den Hypervisor zu übergeben (was nur gilt, wenn Sie eine Xen VM-Umgebung verwenden), werden die in RAM komprimierten Cache-Seiten ähnlich wie in Zram gespeichert. Der Unterschied besteht darin, dass ZCache Cache-Seiten transparent speichert, Zram jedoch ein Blockgerät erstellt, das Sie für den Austausch verwenden können.

Wenn Sie speicherhungrige Anwendungen haben, benötigen Sie Swap-Speicherplatz, um diese zu unterstützen. Daher möchten Sie weiterhin zram verwenden (wahrscheinlich mit einem sehr hohen Swappiness-Wert). Dies liegt daran, dass CleanCache nur Cache-Seiten komprimiert. Der Anwendungsspeicher muss zum Auslagern gesendet werden. Wenn Sie nicht den gesamten Speicher für Anwendungen verwenden, können Sie CleanCache mit dem ZCache-Backend verwenden, um den verbleibenden Speicher für das Zwischenspeichern der Festplatte effektiver zu nutzen, indem Sie den Festplatten-Cache komprimieren. Sie können sogar eine Mischung aus beiden Techniken verwenden.

psusi
quelle
OK, danke, Cache-Seiten dienen nur zum Zwischenspeichern von Datenträgern, nicht für den Anwendungsspeicher. Das war mir nicht klar.
Lytenyn
7

Eine Ergänzung zur obigen Antwort finden Sie unter https://lwn.net/Articles/454795. Dort finden Sie eine ausführliche Erläuterung der Technologie.

Soweit ich weiß, wird zram durch Frontswap ersetzt , das sich noch nicht im Mainline-Kernel befindet, aber den Vorteil hat, dass keine feste Swap-Größe konfiguriert werden muss. Das macht es einfach , sowohl zu ermöglichen Cleancache und frontswap (statt zram und Cleancache , in dem Speicher für verwendete zram kann nicht verwendet werden für Cleancache ).

Lytenyn
quelle