mastodon.cardina1.red は、数々の独立したMastodonサーバーのうちのひとつです。サーバーに登録してFediverseのコミュニティに加わってみませんか。

サーバーの情報

3
人のアクティブユーザー

mastodon のバックアップデータで xz と比較してみよう

元の .tar が 8.6 GiB、 xz --best で圧縮した .tar.xz が 1.3 GiB。

zstd --ultra -21 中。
Read: 1024 MiB / 8.57 GiB ==> 27%

なかなか縮むな。期待できそう

暇なので zstd -T0 --ultra -21 もしてみよう。
CPU% が 1601.3 とかなのでたぶん16並列になってる。メモリは今のところ 34% くらい (10.4 GB くらい) でゆっくり増加中

めちゃくちゃコア偏ってて笑う、キャッシュまわりの何かのためのスケジューリングかな

前提として、 Ryzen 9 7950X なので CCD が2つある

zstd -T0 --ultra -21 の結果出ました、 1.5 GiB。ちゃんと計測してないけど結構高速だった気がする割には xz --best の 15.12% に迫る 17.46% の成果。

これは長期間維持するアーカイブでもなければ普通に即決で乗り替えできるレベルだな……

zstd --ultra -21 の結果、 1.5 GiB。 SHA-512 ハッシュが parallel 版と完全に一致した。そうなんだ……

らりお・ザ・何らかの🈗然㊌ソムリエ

結果発表。
zstd は --ultra -21 (level 21)、 xz は --best (level 9) での圧縮。
parallel-n は -Tn による並列圧縮。
元の tarball は mastodon (この投稿を発射するサーバ) の先月のバックアップで、 mastodon の git リポジトリや postgresql の生 DB (not dump) などを含む。

生 tar: 9199626240 bytes (8.6 GiB)
zstd 直列/16並列 (完全一致): 1606277479 bytes (1.5 GiB)
xz 直列: 1391707412 (1.3 GiB)
xz 8並列: 1395747252 (1.3 GiB)

……というわけで、以下の両方の条件を満たす用途ならまだ zstd よりも xz の方が強そう。

* 2%くらいの差が気になる。
* 圧縮時間はあまり気にしない。

xz を8並列でやっているのは、10並列以上にすると OOM Killer に殺されるからです (当方メモリ 32 GB、ただしアーカイブを tmpfs に置いていたのでたぶん自由に使えたのは 12 GB 〜 16 GB)

Stability of parallel compression · Issue #2238 · facebook/zstd
github.com/facebook/zstd/issue

> Single-threaded output is different than multi-threaded output, but the multi-threaded output is the same for any number of threads.

あれ?そうなのか

GitHubStability of parallel compression · Issue #2238 · facebook/zstdmarxin