周囲には多くの圧縮アルゴリズムがありbzip2、遅いアルゴリズムの1つです。プレーンgzipは、通常、圧縮がそれほど悪くない場合に、著しく高速になる傾向があります。速度が最も重要な場合、lzop私のお気に入りです。圧縮率は低いですが、非常に高速です。
私はいくつかの楽しみを持ち、それらの並列実装を含むいくつかのアルゴリズムを比較することにしました。入力ファイルはpg_dumpall、ワークステーションでのコマンドの出力、1913 MBのSQLファイルです。ハードウェアは古いクアッドコアi5です。時間は、圧縮のみの実時間です。並列実装は、4つのコアすべてを使用するように設定されています。圧縮速度でソートされたテーブル。
Algorithm     Compressed size        Compression          Decompression
lzop           398MB    20.8%      4.2s    455.6MB/s     3.1s    617.3MB/s
lz4            416MB    21.7%      4.5s    424.2MB/s     1.6s   1181.3MB/s
brotli (q0)    307MB    16.1%      7.3s    262.1MB/s     4.9s    390.5MB/s
brotli (q1)    234MB    12.2%      8.7s    220.0MB/s     4.9s    390.5MB/s
zstd           266MB    13.9%     11.9s    161.1MB/s     3.5s    539.5MB/s
pigz (x4)      232MB    12.1%     13.1s    146.1MB/s     4.2s    455.6MB/s
gzip           232MB    12.1%     39.1s     48.9MB/s     9.2s    208.0MB/s
lbzip2 (x4)    188MB     9.9%     42.0s     45.6MB/s    13.2s    144.9MB/s
pbzip2 (x4)    189MB     9.9%    117.5s     16.3MB/s    20.1s     95.2MB/s
bzip2          189MB     9.9%    273.4s      7.0MB/s    42.8s     44.7MB/s
pixz (x4)      132MB     6.9%    456.3s      4.2MB/s     7.9s    242.2MB/s
xz             132MB     6.9%   1027.8s      1.9MB/s    17.3s    110.6MB/s
brotli (q11)   141MB     7.4%   4979.2s      0.4MB/s     3.6s    531.6MB/s
サーバーの16コアが十分にアイドル状態で、すべてを圧縮に使用できるpbzip2場合、おそらく非常に大幅な高速化が得られます。ただし、さらに高速が必要であり、最大20%のサイズのファイルを許容できgzipます。おそらく最善の方法です。
更新:brotli結果を表に追加しました(TOOGAMの回答を参照)。brotli私は3つの設定を追加したので、sの圧縮品質設定は、圧縮率と速度に非常に大きな影響を持っている(q0、q1およびq11)。デフォルトはですがq11、それは非常に遅く、さらに悪いですxz。q1でもとてもよさそうです。と同じ圧縮率ですがgzip、4〜5倍高速です。
更新:lbzip2(gmathtsコメントを参照)およびzstd(ジョニーのコメント)をテーブルに追加し、圧縮速度でソートしました。優れた圧縮率の3倍の速度で圧縮することでlbzip2、bzip2ファミリーを元の状態に戻しpbzip2ます!zstdまた、合理的に見えますがbrotli (q1)、比率と速度の両方で打ち負かされています。
プレーンgzipが最善の策であるという私の最初の結論は、ほとんどばかげているように見え始めています。ユビキタスのために、それはまだ打ち負かすことはできません;)