我有一个充满电子邮件备份文件的文件夹(来自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 性能调整。
我最终按照@ewwhite 所说的做了一个快速基准测试。我的结论是128k没问题。
我很少更改 ZFS 池的记录大小。默认值 128K 适用于大多数工作负载。
您可以轻松地以不同的记录大小对此进行基准测试...
如果您关心存储性能,那么在其他地方还有更多优化的机会。你有关于操作系统/硬件/要求的详细信息吗?