web-dev-qa-db-ja.com

rsync --compress-level:どの圧縮レベルを使用できますか?

Rsyncには圧縮のためのコマンドライン引数があります:

-z, --compress              compress file data during the transfer
    --compress-level=NUM    explicitly set compression level

--compress-levelの意味?レベルとして使用できる数値はどれですか?

13
cronfy

0〜9の値です。 1が最も速い場合、9が最も圧縮されます。それ以外は、rsyncとzlibの間に相関関係があります。rsyncは、zlibライブラリに「デフォルトの圧縮を使用する」ように指示します。zlibのドキュメントでは、次のように書かれています。

Z_DEFAULT_COMPRESSIONは、速度と圧縮の間のデフォルトの妥協点を要求します(現在、レベル6と同等)。

16
Michal

使用されている環境は、MACVLANといくつかのノイズトラフィックで使用される2つのDockerコンテナーで構成されていました(約±1%のエラーが発生します)。fileX-私の場合-はバイナリ

したがって、以下は、rsync taredファイルと、圧縮されたrsync(オプション-z)untaredファイルの結果です。

      1. File tarred + rsync without compression (rsync -axvPAH fileX.tar destination:/path)

    File size is 56933 bits (fileX.tar)
    Transfer difference is 4735665-4673346=62319 bits

      2. File tarred + rsync with default compression (rsync -axvPAH -z fileX destination:/path)

    File size is 56933 (fileX.tar)
    Transfer difference is 4933845-4871608=62237

      3. File tarred + rsync with maximum compression (rsync -axvPAH -z --compress-level=9 fileX.tar destination:/path)

    File size is 56933 bits (fileX.tar)
    Transfer difference is 4870664-4808387=62277

      4. File untarred + rsync with default compression (rsync -axvPAH -z fileX destination:/path)

    File size is 237525 bits (fileX)
    Transfer difference is 4669946-4607637=62309 bits

      5. File untarred + rsync with maximum compression (rsync -axvPAH -z --compress-level=9 fileX destination:/path)

    File size is 237525 bits (fileX)
    Transfer difference is 4806735-4744764=61971 bits

      6. File untarred + rsync without compression (makes no sense since it’s the most bandwidth consuming one) 
0
Zatarra