0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

zstd vs deflate on zswap

Posted at

パラレルATAからしかbootできない自機で、HDDが死亡寸前。
今時、パラレルATA接続のストレージなんて手に入らない。
そこで、kexec機構を用いた最小限のlinuxカーネルとinitial ram filesystemをCDに焼き、USBメモリに格納したシステムへchainload

USBフラッシュメモリの寿命は書き込みによって減るので、swap領域への書き込みを減らすためにzswapを導入。
ここで、zswapの圧縮アルゴリズム選択で気になったのでネット検索したところ、2024年5月現在、多くのサイトで勧められている圧縮アルゴリズムzstdが、小さなファイルでは圧縮率がよくないらしい。
自分がこのことを知ったのは2016年のOSS圧縮ツール選択カタログ #Linux - Qiitaを読んでから。
zstdの開発元でも、Compression ratio worse than zlib for small blobs - Issue #1134 - facebook/zstd - GitHubとして認識されているようだ。
そして、swapはページ単位で行われ、自機の属するアーキテクチャであるx86でのページサイズは4キロバイト。
Squash Compression Benchmark - GitHub Pagesによると、4キロバイト前後のファイルサイズでは、zstdはスピードではdeflateを上回るが圧縮率では負ける。
なので、自分は圧縮率優先でdeflateをzswapの圧縮アルゴリズムに選択した。

新しめのツールはbrotli以外ファイルヘッダが大きそうですね
逆に言うと、gzip/bzip2はまさに汎用と言えるさすがの性能です

2016年のOSS圧縮ツール選択カタログ #Linux - Qiitaの結語は参考になる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?