- Was zur Hölle sind sie? wie unterscheiden sie sich (ich habe mein Verständnis in einer Antwort unten geschrieben)
- Wenn im Zswap-System eine Seite aus dem Zswap in den tatsächlichen Swap verschoben wird, wird sie in einem komprimierten Archiv von gespeichert. (oder ist es vor dem Speichern dekomprimiert?, AFAICT es ist immer noch komprimiert, aber ich kann nicht sicher sein)
- Wie ist der aktuelle Stand von zcache? es wurde anscheinend entfernt oder so etwas in 3.11. Was bedeutet das? ( http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=96256460487387d28b8398033928e06eb9e428f7 )
kernel
performance
ram
swap
statisch
quelle
quelle
Antworten:
In Bezug auf 2. scheint zswap die Seiten beim Zurückschreiben zu dekomprimieren, was den Kommentar von @ Cbhihe bestätigt.
mm / zswap.c , Zeile 828:
Zswap ist daher in Situationen nützlich, in denen der komprimierte RAM-Cache wahrscheinlich kurz vor dem Zurückschreiben auf die Festplatte vergessen wird. Es ist nicht für Anwendungen mit großen, langlebigen Haufen gedacht, die eventuell vom eigentlichen Swap-Gerät unterstützt werden müssen.
quelle
Es gibt eine Menge Dinge über diese drei Systeme, aber keines davon macht einen einfachen Vergleich zwischen ihnen, geschweige denn eine gute Erklärung. Ich versuchte es zu verstehen, aber mein Kopf explodierte. Dann dachte ich, ich hätte es verstanden, also versuchte ich es aufzuschreiben und mein Kopf explodierte erneut. (siehe Zusammenfassung der Implementierungen) Ich dachte, es wäre nützlich, dies hier zu posten, da es viele Stapelaustauschfragen gab, die sich mit paarweisen Vergleichen zwischen ihnen befassten.
Zusammenfassung dessen, was wann verwendet werden soll:
Zusammenfassung ihrer Implementierungen:
Einzelheiten:
ZRAM: Erstellt ein Swap-Gerät im RAM. Hier gesendete Seiten werden beim Speichern komprimiert. Es hat eine höhere Priorität als andere Auslagerungsgeräte: Ausgelagerte Seiten werden vorzugsweise an das zram-Gerät gesendet, bis es voll ist. Erst dann werden andere Auslagerungsgeräte verwendet.
ZSWAP: Das
frontswap
System fängt den Versuch ab, Seiten auszutauschen und verwendet zswap als Write-Back-Cache für ein HDD / SSD-Auslagerungsgerät: Es wird versucht, die Seite zu komprimieren, und wenn sie schlecht komprimierbare Daten enthält, werden diese direkt auf die Festplatte geschrieben. Wenn die Daten komprimiert sind, werden sie im zswap-Speicherpool gespeichert. Wenn Seiten aus dem Arbeitsspeicher ausgelagert werden, wenn die insgesamt komprimierten Seiten im RAM eine bestimmte Größe überschreiten, wird die zuletzt verwendete (LRU) komprimierte Seite auf die Festplatte geschrieben, da es unwahrscheinlich ist, dass sie bald benötigt wird.ZCache: Es ist ein Backend für das Transcendent-Speichersystem. Transzendenter Speicher bietet einen RAM-ähnlichen Speicher, auf den nur mit
put
undget
-Aufrufen auf einer Seite gleichzeitig zugegriffen werden kann . Dies ist anders als bei normalem Speicher, auf den jeweils byteweise zugegriffen werden kann. Der Hookfrontswap
undcleancache
systems versucht, Dateisystem-Seiten-Caches auszutauschen und wiederherzustellen und sie an die Backends des transzendenten Speichers zu senden. Wenn zcache als Backend verwendet wird, werden die Daten komprimiert und im RAM gespeichert. Wenn es voll ist, werden komprimierte Seiten in den Swap verschoben. (Ein alternatives Backend ist RAMster, das einen gemeinsamen RAM-Pool für vernetzte Computer verwendet.) Das Verwenden nur desfrontswap
Frontends mit demzcache
Backend funktioniert genausozswap
. (Tatsächlich ist zswap eine vereinfachte Teilmenge von zcache.)Die besten Ressourcen, die ich gefunden habe, waren:
quelle
zswap
. Hier Details askubuntu.com/a/361321/25388zram
ist,swap
ist völlig falsch.zram
IST NICHT einswap
. Dasswap
einzige KANN in gespeichert werdenzram
. Dies ist jedoch einer von vielen möglichen Anwendungsfällen !. Hier ist ein Beispiel: "Einige der Verwendungszwecke beinhalten / tmp-Speicher, die Verwendung als Swap-Disk, verschiedene Caches unter / var und vielleicht noch viel mehr :)" kernel.org/doc/Documentation/blockdev/zram.txt Zum Beispiel verwende ich es für Zwischenspeicher, den ich wie jedes andere normale Blockgerät formatiere und einbinde.