ZFS unterstützt die Dateisystemkomprimierung und speichert häufig Daten, auf die häufig oder kürzlich zugegriffen wurde, zwischen.
Wenn ein System viel CPU hat, das zugrunde liegende Datenspeichersystem jedoch langsam ist. Es ist möglich, dass ZFS bei aktivierter Komprimierung eine bessere Leistung erzielt. Dies kann beim Schreiben von Dateien leicht getestet werden, indem die CPU- und Festplattenauslastung und der Durchsatz gemessen werden. (Natürlich kann Latenz vorhanden sein, aber dies wäre kein Problem für große Dateien).
Aber was ist mit dem Cache? Wenn Daten bei jedem Lesen dekomprimiert werden müssen, ist dies wahrscheinlich weniger eine gute Idee.
Werden die zwischengespeicherten Daten komprimiert? Hat jemand Informationen dazu?
quelle
Heute kann der L2ARC mit LZ4 komprimiert werden, der ARC ist noch unkomprimiert. Weitere Informationen finden Sie auf der OpenZFS-Website -> http://open-zfs.org/wiki/Features#l2arc_compression
quelle
Zwischengespeicherte Daten in ARC oder L2ARC sind immer unkomprimiert. Zeitraum. Andernfalls hätte jeder Lesevorgang von ARC oder L2ARC einen entsprechenden CPU-Overhead, der bei einigen Algorithmen erheblich sein könnte (ich sehe Sie bzip2). Angenommen, Komprimierung = Ja auf Ihrem Dateisystem (Ihren Dateisystemen), werden Daten auf Pooldatenträgern und der ZIL (falls zutreffend) immer komprimiert.
Sie haben Recht, wenn Sie Daten speichern, die gut komprimiert sind, und wenn ein System mit viel CPU, aber begrenzten E / A-Vorgängen bei aktivierter Komprimierung möglicherweise eine bessere Leistung erbringt. Dies ist kein einzigartiges Merkmal von ZFS. Sie finden zahlreiche Hinweise darauf, wie Sie die Komprimierung auf NTFS oder anderen Dateisystemen aktivieren können.
quelle
Dies hat sich in den letzten Versionen von zfs geändert (zumindest unter Linux). Wir haben gerade einen Apfel-für-Apfel-Vergleich mit zwei 32k-Datensätzen durchgeführt, einer mit lz4-Komprimierung, der andere ohne. Der von arc verwendete Speicher war bei unkomprimiertem Speicher doppelt so hoch.
Es scheint, dass es normalerweise effizienter ist, die tatsächlich benötigten Daten in einen kurzfristigen Cache zu dekomprimieren, da der Arc-Cache häufig Daten einliest, die niemals angefordert werden. Es scheint, dass die Wahl getroffen wurde, um im Speicher zu komprimieren.
Ich sehe auch einige Parameter in der Datei / proc / spl / kstat / zfs / arcstats, die dies bestätigen:
Dieses Commit sieht relevant aus https://www.illumos.org/issues/6950
quelle
Ja. ZFS speichert häufig aufgerufene Daten in beiden Formen zwischen. Die Leistung mit dem Standardkomprimierungsschema ist gut und kostet nur wenig CPU-Zeit. Die Komprimierung erfolgt im laufenden Betrieb. Sie können dies noch weiter ausbauen, indem Sie ein SSD L2ARC-Cache-Gerät hinzufügen.
quelle