Filesystems
在 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 性能調整。
我最終按照@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
我很少更改 ZFS 池的記錄大小。預設值 128K 適用於大多數工作負載。
您可以輕鬆地以不同的記錄大小對此進行基準測試…
如果您關心儲存性能,那麼在其他地方還有更多優化的機會。你有關於作業系統/硬體/要求的詳細資訊嗎?