web-dev-qa-db-ja.com

rsync圧縮とその仕組み

Rsyncを使用して、大量のファイル(Ubuntu Linuxサーバー上)をWebDav経由でクラウドネットワークサービスにバックアップしています。ネットワーク速度がボトルネックの要因であるため、rsync -z(圧縮)を使用してファイルサイズを小さくし、ボトルネックを減らすことができればと思いました。

とにかく、圧縮を伴うrsyncの目的と使用法を研究している間、私はそれが何をしているのか正確な答えを見つけられないようです。

基本的に、rsyncはデータを圧縮して転送し、次にデータを解凍するようです。ただし、rsyncがデータをクラウドに送信した後に解凍することは、クラウドサービスがデータを解凍する必要があるため、あまり意味がありません。これは発生していないと思います。

私の質問は、圧縮を伴うrsyncは、WebDav、FTP、またはその他のネットワークからネットワークプロトコルに送信されるデータを実際に圧縮および解凍するのですか?それでも問題が解決しない場合、圧縮フラグはどのようなシナリオで役立ちますか。たとえば、USB2.0を介したローカルからローカルへの同期ですか。

4
electricjelly

WebDAVフォルダーはどこにマウントされていますか?

ローカルマシン上にある場合、CPUは圧縮するために二重の作業を行い、マウントされたフォルダーに書き込む前にすぐに解凍する必要があるため、パフォーマンスを向上させることなく追加のオーバーヘッドが発生します。マウントされたフォルダーは、WebDAVプロトコルを使用してリモートサーバーに転送されます。 。

rsyncは、zlibを使用して転送中の圧縮を実行します。差分転送を行っていない場合、ファイルディレクトリツリーの変更を比較するために使用されるscpアルゴリズムのオーバーヘッドが増えるため、rsyncのパフォーマンスが向上します(ただし、scpには転送中の圧縮オプションがありません)。

ただし、圧縮が常に答えになるとは限りません。ネットワークがボトルネックである場合、プロセスは高速化されますが、CPU%が最大になると、プロセスが遅くなります。

rsyncは、JPEGLZOLZMA/2ZipGZIPなどの圧縮ファイルタイプを圧縮しません(これらのタイプのファイルを圧縮する際のパフォーマンスのトレードオフ率が非常に低いため)。

0
craidz