これにはちょっと戸惑いました?なぜ rsync は scp よりも速いのか?rsync は scp を下に使わないのか、それとももっと効率的なことをしているのか?scp を高速化する方法はありますか?
60 grm 2010-09-29
rsync は差分をコピーするだけなので、ターゲットにソースファイルのいくつかがすでに含まれている場合、明らかに scp よりも速くなります。しかし、あなたの質問は空のターゲットへの簡単なコピーについてのものではないでしょうか
-z
オプションを rsync
に渡しました。ネットワークの帯域幅が制限要因になっている場合 (多くの場合そうです)、圧縮は転送速度を顕著に向上させることができます
-C
オプションを渡すことで scp
で圧縮を有効にすることもできます。これで、rsync との間ではほぼ互角になるはずです。圧縮は帯域幅を節約しますが、待ち時間と CPU のオーバーヘッドが追加されるため、ssh ではデフォルトでは圧縮は有効になっていません。待ち時間は対話型セッションには不利です (これは scp
には適用されません)
古いバージョンのrsync
はデフォルトのトランスポート層としてsshではなくrshを使っていました。しかし、2004年1月1日にリリースされた2.6.0以降は、sshがデフォルトとなっています
同一の圧縮設定では、rsync
とscp
は実質的に同じ速度になると思います。もしそうでないことがわかったら、ベンチマークを共有してください
77 Gilles ‘SO- stop being evil’ 2010-09-29
早速SCPを試してみましょう
scp -p -C -o 'CompressionLevel 9' -o 'IPQoS throughput' -c arcfour machine:file .
これらのオプションは私の設定では、通常の scp machine:file と比較して scp を 5 倍高速化します
Update, 2017
実際に scp が遅いのは、MTU やバッファサイズなどの TCP の詳細の管理が悪いためです。幸いにもこれは HPN SSH プロジェクトによって修正されています。私の理解では、HPN SSH を rsync のトランスポートとして使うことができます
15 Peter K 2014-07-24
以前はその逆でしたが、ここ数回のリビジョンでrsyncの速度が大幅に向上したと思います。また、コピーするファイルの数にもよります。多ければ、scp はコピーするファイルごとに新しいプロセスを生成するので、通常 rsync の方が速くなります。scp が使用している暗号を弱くしてみると速くなるかどうかがわかります。最後の記憶では arcfour 暗号が一番速かった
4 churnd 2010-09-29
多数の小さなファイルの場合、rysnc は scp よりもはるかに高速です。オーバーヘッドが小さいからだそうです。1つの大きなファイルでは、同じような結果が得られると思います
3 sencer 2012-12-17
私のテストでは、rsync は scp よりも高速です
sudo iotop -o
違った結果が得られるかもしれませんが、自分でテストしてみてください。ちなみに、scpを使っている間は、暗号の選択に迷わないようにしてください
scp -c arcfour <source> <dest>
arcfour
が暗号化を高速化できる一方で
3 coanor 2013-04-05
既存のファイルの上にファイルを再コピーしていますか?そうであれば、比較をブロックして差分だけをコピーする rsync の機能が関係してきます
0 Linker3000 2010-09-29