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


12
  1. scp user@aws-ec2:~/file file
  2. rsync --partial --progress -Pav -e ssh user@aws-ec2:~/file file

scp200K /秒しか得られないが、1.9M /秒がrsync得られる

私は数回テストしましたが、すべて同じ結果でした。

rsync 複数のスレッドを使用しますか?

回答:


7

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

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

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

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

そして、いいえ、圧縮(-Cfor scp)は役に立ちません。最大の問題は、待ち時間とバッファサイズです。


7

RSYNC対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.

ソース


3
この場合、状況は少し異なります。彼は1つのファイルのみをコピーしています。(おそらくリモートエンドにはまだ存在していません。)
Daniel B

1
@DanielB デフォルトではRSYNCが1つのファイルに対してもデータ接続を最適化し、おそらく転送中にデータを圧縮するため、実際にはパイプに送信されるデータチャンクが少ないのに対し、スイッチのないSCPはそうではないかもしれ-Cません。 tパイプを介してデータを送信中にデータを圧縮しますか?
Pimp Juice IT

2
彼のrsyncコマンドラインでは圧縮もチェックサムも指定されていません。もちろん、ファイル内デルタアルゴリズムは常にアクティブです。たぶんそれだけがscp悪い。
ダニエルB
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.