バックアップ圧縮をgzからzstdへ移行

zstd は現在かなり一般的で、gz よりも圧縮率が高く、高速です。バックアップに切り替える価値があるかもしれません。

世界中のすべての Discourse インスタンスを考慮すると、ディスクと転送の大きな節約になる可能性があります。

Choosing Between gzip, Brotli and zStandard Compression | Paul Calvano.

「いいね!」 4

これは良いアイデアだと思います。pr-welcome タグを付けます。

「いいね!」 2

Discourseのバックアップにおける圧縮可能データと既に圧縮されたデータの平均重量比、およびzstdを使用した場合にどれだけのデータ(%)が節約されるかを知りたいです[^1]。

[^1]もちろん、フォーラムによっては画像アップロードに大きく依存するものもあれば、ファイルアップロードを許可しないものもあります。

これは同じ機能リクエストではありませんが、バックアップ圧縮に関するものでもあるため、ここにクロス投稿します。

私のDiscourseフォーラムすべてで、その割合はほぼ同じであると予想しています。

バックアップ処理により、追加の負荷がかかるため、まれに可用性に問題が生じることがあります。そのため、今日は zstd で簡単な実験を行いました。

Discourse のバックアップで使用されている gzip(レベル 4)と、zstd(デフォルトのレベル 3、最大 19)で、同じ 73GiB の dump.sql ファイルを圧縮した結果は以下の通りです。

圧縮後のサイズ: 15.8% 小さい(.zst は .gz サイズの 84%)
圧縮時間 (-T1): 71% 高速(gzip の 29%)
圧縮時間 (-T0): 89% 高速(gzip の 11%)

YMMV(結果は環境により異なります)。複数回実行せず、私のマシン(6 コア)でも他の処理を同時に行っていたため、正確さを追求したわけではありません。それでも、メリットは明らかだと思います。

-T0 が必ずしも全員にとって最適な選択とは限りません。Discourse 自体のリソースにも余裕を持たせることが重要だと考えるからです。そのため、より公平な比較のために -T1 のサンプルも用意しました。

これは win-win であり、Discourse のホスティングインフラにも大きな影響を与えるでしょう。ただし、PR を作成するスキルがないため、発見した内容を共有するに留めます。

「いいね!」 2

Docker 内の tar が --zstd 圧縮をサポートしていることを確認しました。

編集:あ、違います。tar はサポートしていますが、‘zstd’ ユーティリティが不足しています。これは apt-get install でインストール可能です。

「いいね!」 2