Optimieren eines E-Mail-Backup-Datasets auf ZFS

Optimieren eines E-Mail-Backup-Datasets auf ZFS

Ich habe einen Ordner voller E-Mail-Sicherungsdateien (von offlineimap). Ein solcher Ordner enthält 87.000 Dateien, von denen 68.000 zwischen 512 und 1024 Byte groß sind. (Dieser eine Ordner ist ziemlich repräsentativ für den Rest.) Die gesamte Größenverteilung sieht folgendermaßen aus:

Size bin    % by count  % by space
512         0.08%       0.00%
1024        77.37%      74.58%
2048        1.65%       1.62%
4096        3.92%       4.05%
8192        6.11%       6.78%
16384       3.68%       4.25%
32768       3.07%       3.66%
65536       1.77%       2.15%
131072      0.75%       0.92%
262144      0.36%       0.44%
524288      0.33%       0.41%
1048576     0.30%       0.37%
2097152     0.21%       0.27%
4194304     0.20%       0.25%
8388608     0.11%       0.14%
16777216    0.08%       0.10%

Meine Frage ist: Welche Datensatzgröße ist für diese Daten am besten geeignet? Ich würde an 1 KB denken, aber das ist viel weniger als die normalerweise empfohlenen Werte, und ich mache mir Sorgen wegen des Overheads durch Metadaten.

Ich habe einige Artikel gelesen, die dieses Thema ansprechen, bin aber zu keinem Ergebnis gekommen. Zum Beispiel:ein Artikeluntersucht die Speichereffizienz bei der Verwendung von Datensatzgrößen, die kleiner sind als die durchschnittliche Dateigröße. Seine durchschnittliche Mindestdateigröße betrug 128 KB und er stellte fest, dass sich die Speichereffizienz durch Komprimierung erhöhte, wenn die Blockgröße von 512 auf 128 KB anstieg. Er testete jedoch keine Blockgrößen, die größer waren als seine Dateien, sodass der vollständige Trend nicht klar ist.

Eine weitere gute Lektüre wardieser Reddit-ThreadDas beschreibt den Unterschied zwischen Datensatz- und Blockgrößen und geht auf die SSD-Leistungsoptimierung ein.

Antwort1

Ich habe letztendlich das gemacht, was @ewwhite gesagt hat, und einen schnellen Benchmark durchgeführt. Mein Fazit ist, dass 128k in Ordnung sind.

BlockSize   CompRatio   du-s
1           0           50747244
2           1           26001757
4           1           13487472
8           1.04        12690656
16          1.06        9560063
32          1.08        8011524
64          1.09        7872713
128         1.1         7822344
256         1.11        7804225
512         1.14        7799985
1024        1.16        7801688

Bildbeschreibung hier eingeben

Antwort2

Ich ändere die Datensatzgröße in ZFS-Pools selten. Der Standardwert von 128 KB ist für die meisten Arbeitslasten geeignet.

Sie können dies problemlos anhand unterschiedlicher Datensatzgrößen vergleichen ...

Wenn Ihnen die Speicherleistung am Herzen liegt, gibt es an anderer Stelle weitere Optimierungsmöglichkeiten. Haben Sie Einzelheiten zu Betriebssystem/Hardware/Anforderungen?

verwandte Informationen