GNU/Linux >> Linux の 問題 >  >> Linux

SSH 経由の rsync で SCP の 10 倍のスループットが得られるのはなぜですか?

RSYNC vs SCP

SCP は基本的に、SSH を使用してローカルまたはネットワーク経由でソースから宛先への単純な古いコピーを行いますが、 -C を使用できる場合があります スイッチを使用して SSH 圧縮を有効にすると、ネットワーク全体のデータのコピーが高速化される可能性があります。

RSYNC は、データ転送中にネットワーク接続を自動的に最適化する効率的なチェックサム検索アルゴリズムを使用して、ネットワーク接続を介して 2 つのファイル セット間の違いのみを転送します。

<ブロック引用>

RSYNC

説明

   rsync is a program that behaves in much the same way that rcp does, but
   has many more options and uses  the  rsync  remote-update  protocol  to
   greatly  speed  up  file  transfers  when the destination file is being
   updated.

   The rsync remote-update protocol allows rsync to transfer just the dif-
   ferences between two sets of files across the network connection, using
   an efficient  checksum-search  algorithm  described  in  the  technical
   report that accompanies this package.

ソース

<ブロック引用>

SCP

説明

 scp copies files between hosts on a network.  It uses ssh(1) for data
 transfer, and uses the same authentication and provides the same secu‐
 rity as ssh(1).  scp will ask for passwords or passphrases if they are
 needed for authentication.




 File names may contain a user and host specification to indicate that
 the file is to be copied to/from that host.  Local file names can be
 made explicit using absolute or relative pathnames to avoid scp treat‐
 ing file names containing ‘:’ as host specifiers.  Copies between two
 remote hosts are also permitted.

ソース


どちらのプロトコルも SSH に基づいています。また、SSH 自体にもオーバーヘッドがあります。

SCP は、いくつかの小さなファイルを転送するための非常に単純なアルゴリズムを備えた、非常に単純なプロトコルです。多くの同期 (RTT - 往復時間) と小さなバッファー (基本的に 2048 B -- ソース) があります。

Rsync はパフォーマンスを重視して作成されているため、はるかに優れた結果が得られ、より多くの機能を備えています。

10倍のスピードアップは、あなたのケースに固有のものです。レイテンシの高いレーンを介して全世界にファイルを転送すると、scp のパフォーマンスが大幅に低下します。 ただし、ローカル ネットワークでは、パフォーマンスはほぼ同じになる可能性があります。

いいえ、圧縮 (-C scp の場合 )役に立ちません。最大の問題は、レイテンシとバッファ サイズです。


Linux
  1. ルートユーザーがSudo権限を必要とするのはなぜですか?

  2. Ssh – FirefoxがSshよりも遅いのはなぜですか?

  3. Ssh -tオプションがリダイレクト出力にCrとLfを追加するのはなぜですか?

  1. Linuxディスプレイをエクスポートできないのはなぜですか?

  2. xargs -L では正しいフォーマットが生成されるのに、xargs -n では生成されないのはなぜですか?

  3. C プリプロセッサが linux という単語を定数 1 と解釈するのはなぜですか?

  1. 侵害されたカーネルは、デバイスを完全に制御できますか?

  2. setuid ビットの動作に一貫性がないのはなぜですか?

  3. インターネット経由でファイルシステムをマウントする