在 ZFS 上调整电子邮件备份数据集

在 ZFS 上调整电子邮件备份数据集

我有一个文件夹,里面装满了电子邮件备份文件(来自 offlineimap)。其中一个文件夹有 87k 个文件,其中 68k 个文件大小在 512-1024 字节之间。(这个文件夹非常具有代表性。)整个大小分布如下:

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%

我的问题是:这些数据的最佳记录大小是多少?我倾向于认为是 1k,但这比正常推荐的值小得多,而且我担心元数据的开销。

我读过几篇涉及这个问题的文章,但没有得出任何结论。例如,一篇文章检查使用小于平均文件的记录大小的存储效率。他的平均最小文件大小为 128k,他发现使用压缩后,随着块大小从 512 增加到 128k,存储效率会提高,但他没有测试大于他的文件的块大小,因此整体趋势并不明显。

另一本好书是这个reddit帖子描述了记录和块大小之间的差异,并深入研究了 SSD 性能调整。

答案1

我最终按照@ewwhite 所说的做了一个快速基准测试。我的结论是 128k 就够了。

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

在此处输入图片描述

答案2

我很少更改 ZFS 池上的记录大小。默认值 128K 适合大多数工作负载。

您可以轻松地以不同的记录大小对此进行基准测试......

如果您关心的是存储性能,那么还有更多机会在其他地方进行优化。您有关于操作系统/硬件/要求的详细信息吗?

相关内容