zstd圧縮の圧縮レベル毎のベンチマーク

zstd圧縮の圧縮レベル毎のベンチマーク

Btrfsの透過圧縮で扱えるzstd圧縮。

カーネル5.1からは
圧縮方式だけではなく圧縮レベルまで選択可能なので
どの圧縮レベルにするのがいいのか混乱したので調べてみました。

同じようにまとっている人はぜひ参考にしてみてください。

圧縮速度のベンチマーク

Redditに投稿されたベンチマーク

https://docs.google.com/spreadsheets/d/1×9-3OQF4ev1fOCrYuYWt1QmxYRmPilw_nLik5H_2_qA/edit#gid=0

この結果を見ると
書き込みだけならレベル2がバランス良さそうに見えます。

解凍速度のベンチマーク

今度は解凍速度のベンチマーク。
これはカーネルのコミットログから引っ張ってきます。

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3f93aef535c8ea03e40cd8acf0753b3e6ed33e96

 

まじかぁ・・・

なんと圧縮レベルを上げても解凍速度は変化なし!!

圧縮率のベンチマーク

https://community.centminmod.com/threads/round-3-compression-comparison-benchmarks-zstd-vs-brotli-vs-pigz-vs-bzip2-vs-xz-etc.17259/

 

うーむ、悩ましい・・・
バランスだけなら圧縮レベル2が良さそうだけども
どうせ解凍時間には影響しないならいっそレベル15(設定可能な最大値)でも良さそう。