Nutzungsszenarien für Zswap-, Zram- und Zcache-Desktops

11

Ich habe versucht, den Unterschied in den Anwendungsfällen für Zswap, Zram und Zcache zu verstehen. Entschuldigung im Voraus für die lange / leicht schlampig formulierte Frage. Ich habe ein paar Mal gegoogelt und ich verstehe, dass zram im Grunde ein Blockgerät für komprimierten Swap ist, während zswap im Kernel mit der Frontswap-API komprimiert. Es scheint, dass ein Vorteil von zswap darin besteht, dass einige Seiten unter LRU-Druck in einen Hintergrundwechsel verschoben werden können, während zram dies nicht kann (bitte bestätigen, nicht sicher, ob dies zutrifft).

Hier ist meine Frage: 1.) Was ist als Desktop-Benutzer der Leistungsunterschied zwischen zcache / zswap / zram, insbesondere zswap und zram? Ist man beispielsweise bei der Speicherfragmentierung viel besser / schlechter (was zu übermäßiger Speichernutzung und Verschwendung führt)?

Bonusfrage: 2.) Gibt es eine wahrscheinlich ideale Kombination der oben genannten (z. B. zram + zswap oder zram + zcache) für die Desktop-Leistung (einschließlich der Reaktionsfähigkeit des Desktops sowie eines minimal störenden Swap-Verhaltens und einer vernünftigen Speicherverwaltung)?

* Quellenangabe wird sehr geschätzt.

Ich sollte hinzufügen, dass ich ein anständiger erfahrener Linux-Benutzer bin (5 Jahre) und versucht habe, wirklich zu verstehen, wie mein System einschließlich des Kernels funktioniert. Ich bin jedoch kein Programmierer und habe nur sehr grundlegende Programmierkenntnisse (3 Credits College-Kurs). Aber seien Sie technisch, wenn Sie müssen; Ich werde Ihre Bedeutung in meiner Freizeit analysieren.

Systemspezifikationen:

Linux Mint 15
Processor:Core 2 Quad 6600 (2.4ghz)
Ram: 8G
linux kernel: liquorix 3.11 series
Storage: 128 GB SSD, 1TB HDD 5400rpm

Bitte keine "buy more ram" -Kommentare! Ich habe den RAM auf diesem Motherboard maximal genutzt und habe auf absehbare Zeit ein Upgrade-Budget von 0 US-Dollar. Ich mag es jedoch, speicherintensive Programme offen zu halten (mehrere Browser sind die Hauptverbraucher meines RAM), damit es mir nichts ausmacht, innerhalb angemessener Leistungseinbußen zu tauschen.

Labyrinth
quelle

Antworten:

7

Der beste Weg, diese Fragen zu beantworten, ist zu sagen, was diese drei tatsächlich sind.

zRAM

zRAM ist im Wesentlichen nichts anderes als ein Swap-Gerät. Die Speicherverwaltung sendet Seiten an das Auslagerungsgerät und zRAM komprimiert diese Daten und weist nach Bedarf Speicher zu.

Zswap

Zswap ist ein komprimierter Swap-Bereich, der vom Kernel intern zugewiesen wird und nicht als Swap-Gerät angezeigt wird. Es wird von Frontswap auf die gleiche Weise verwendet, wie ein Swap-Gerät verwendet werden kann, jedoch auf effizientere Weise.

Zcache

Zcache ist das Frontend für Frontswap und Cleancache.

Zcache ersetzt zRAM, sodass Sie nicht möchten, dass beide um Ressourcen streiten, obwohl darüber gesprochen wird, wie die beiden unter den richtigen Umständen gut zusammenarbeiten können. Im Moment würde ich nicht versuchen, es den Experten zu überlassen, dies herauszufinden.

Einige lesen:
Cleancache vs zram?
https://lwn.net/Articles/454795/
https://www.kernel.org/doc/Documentation/vm/zswap.txt
http://www.zeropoint.com/Support/ZCache/ZCachePro/ZCacheAdvantages.html

Persönlich habe ich gerade zRAM deaktiviert und Zcache auf allen meinen Systemen aktiviert, die über einen ausreichend neuen Kernel verfügen (zRAM ist auf den Android-Geräten weiterhin aktiviert).

Was die Leistung betrifft: Das müssten Sie sich selbst ansehen. Jeder ist anders. Theoretisch sollte Zcache jedoch viel speichereffizienter sein als zRAM. Es funktioniert auf zwei Ebenen (Frontswap und Cleancache) und kann bei Bedarf (z. B. auf der Festplatte) auf ein Swap-Gerät übertragen werden. Sie können auch auswählen, welcher Komprimierungsalgorithmus verwendet werden soll, falls zu viel CPU verwendet wird (was ich mir nicht vorstellen kann).

Update : Zcache wurde (vorerst) aus dem 3.11-Kernel entfernt, sodass zRAM in neueren Kerneln wieder die einzige Option ist. https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1256503/comments/3 http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git / commit /? id = 96256460487387d28b8398033928e06eb9e428f7

Ken Sharp
quelle
1
Zswap wird in den neuesten Kerneln durch Hinzufügen zswap.enabled=1zur Linux-Befehlszeile aktiviert .
Ken Sharp