我有一个充满电子邮件备份文件的文件夹(来自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%
我的问题是:这个数据最好用的logging大小是多less? 我会试着想1k,但是这比正常的推荐值要小,而且我对元数据的开销感到担忧。
我已经阅读了一些涉及这方面的文章,但还没有得出任何结论。 例如, 一篇文章考察了使用小于平均文件的logging大小的存储效率。 他的平均最小文件大小是128k,他发现在压缩的情况下,存储效率随着块的大小从512增加到128k而增加,但他没有testing块大于他的文件,所以整体趋势不明确。
另一个很好的阅读是这个reddit线程 ,描述了logging和块大小之间的差异,并进入SSD性能调优。
我最终做了@ewwhite所说的,做了一个快速的基准testing。 我的结论是,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
我很less更改ZFS池的logging大小。 128K的默认值适用于大多数工作负载。
你可以很容易地在不同的logging大小的基准…
如果您的存储性能值得关注,那么其他地方有更多机会进行优化。 你有详细的操作系统/硬件/要求?