回答:
rsyncは差分のみをコピーするため、ターゲットにすでにソースファイルの一部が含まれている場合、rsyncは明らかにscpより高速です。しかし、あなたの質問は空のターゲットに簡単なコピーをすることについてだったと思う。
に-z
オプションを渡しましたrsync
。これにより、圧縮がオンになります。ネットワーク帯域幅が制限要因である場合(多くの場合)、圧縮により転送速度が大幅に向上します。
オプションscp
を渡すことで、圧縮を有効にすることもでき-C
ます。これは、rsyncを使用した場合でも問題ないはずです。圧縮は帯域幅を節約しますが、レイテンシとCPUオーバーヘッドを追加するため、sshではデフォルトでは有効になっていません レイテンシーは対話型セッションには不適切です(これはには当てはまりませんscp
)。コピーするファイルが既に圧縮されている場合、CPUオーバーヘッドは役に立ちません。
古いバージョンのrsync
デフォルトのトランスポート層として使用rshのではなく、sshは、とても公平な比較は間だろうrsync
とrcp
。ただし、2004-01-01にリリースされた2.6.0以降、sshがデフォルトになっています。
同じ圧縮設定で、私は期待rsync
とscp
本質的に同じ速度を持っています。そうでない場合は、ベンチマークを共有してください。
rsync -z
よりもずっと高速ですscp
。また、1つのファイルに手動で圧縮してアーカイブし、そのファイルを圧縮するよりも高速scp
です(scp
圧縮すると、さらに遅くなります)。したがって、OPの問題は実際には未解決のままです。wthは?scp
と比較して非常に遅いrsync
です。
高速でscpを試してください
scp -p -C -o 'CompressionLevel 9' -o 'IPQoS throughput' -c arcfour machine:file .
私のセットアップでは、これらのオプションはscp machine:fileに比べてscpを5倍高速化します。
更新、2017
実際には、MTUやバッファサイズなどのTCP詳細の管理が不十分なため、scpは低速です。幸いなことに、これはHPN SSHプロジェクトによって修正されました。私の理解では、HPN SSHをrsyncのトランスポートとして使用できます。
scp -p
デフォルトとして常に(日付/時刻を保持)し、おそらく-r
(再帰的)そうしscp -pr -C ...
ます。(私は忘れたので、これらを使用して40Gb scpジョブをスクラブして再起動する必要がありました-p
)