web-dev-qa-db-ja.com

ギガビットLANでrsync圧縮を使用する必要がありますか?

私は通常、インターネット経由でファイルを転送するときに、rsyncの-zオプションを使用して圧縮を有効にします。ただし、自分の(アイドル)ギガビットLANを使用している場合でも、圧縮は必要ですか?それともそれなしでより速くなりますか?これはどの要素に依存しますか? (まだベンチマークを行っていません)。

つまり、基本的には、圧縮+転送+解凍、または単に非圧縮で転送する方が高速ですか?

ネットワーク接続が遅い場合は、圧縮する方が明らかに良いですが、すべてがギガビットイーサネットネットワークで実行されている場合はどうでしょうか。

6
Corey Goldberg

Rsync転送中に、CPUがバインドされているか、リンクが飽和していますか。

  • リンクが飽和しているが、CPUがアイドル状態の場合は、圧縮してください。
  • CPUが最大化されていて、リンクが最大化されていない場合は、圧縮しないでください。
16
Zoredache

私はこれを頻繁に使用して、サーバー間および非常に長いデータ転送中にデータを移行しています...

短い答えは、特定のデータでテストすることです...これは本当に簡単です。圧縮をオフにしてLAN転送を試してから、圧縮をオンにして試してください...

GigE以上の接続でのいくつかの環境にわたる実稼働データセットの私の経験では、rsync圧縮スロットル転送を最大40メガバイト/秒()またはギガビットリンクの理論上の最大速度の33%に有効化)。

その速度は、転送されるファイルのサイズと数によっても変化しました(たとえば、小さなファイルのロット、たとえば、全体的なrsyncスループットが低下しました)。送信者と受信者のストレージサブシステムも重要でした。

最近、LAN転送に変更されたrsyncを使用しています。 DRライブラリをrsync(UDP転送を許可)で使用し、圧縮と暗号化を無効にすることで、ワイヤスピードを得ることができますファイル数に関係なく、ファイルタイプが混在するrsync転送。

7
ewwhite

Zoredacheが言ったように、リンクが飽和していない場合は-zはありません。また、長い転送の管理に役立つと思われるものとして、bwlimitフラグがあります。

2
pokemaster

Zoredacheからの回答を補足するいくつかの詳細:

  • マシンでtopを使用して、CPU使用率を確認します。特に送信機で。リモートの場合は、sshを使用して送信者に到達します。

  • 意味のある速度を示すのに十分な大きなファイルがある場合は、--progressオプションを指定してrsyncを使用します。ファイルがほとんど小さい場合は、ネットワーク速度についてはあまりわかりません。その場合...

  • ネットワーク速度を確認するには、いずれかのマシンでnloadを使用します

疑わしい場合は、圧縮しないでください。

ほとんどの大きなファイルは通常、既に圧縮されています(映画、写真、インストーラーなど)。したがって、それらをさらに圧縮しようとすると、時間の無駄になります。

0
mivk