为什么通过 SSH 进行的 rsync 能给我带来 SCP 10 倍的吞吐量?

为什么通过 SSH 进行的 rsync 能给我带来 SCP 10 倍的吞吐量?
  1. scp user@aws-ec2:~/file file
  2. rsync --partial --progress -Pav -e ssh user@aws-ec2:~/file file

scp只给我 200K/s,但rsync给我 1.9M/s

我测试了几次,结果都一样。

rsync使用多个线程??

答案1

这两种协议都基于 SSH。SSH本身也有一些开销维基百科

SCP 是一种非常简单的协议,其算法非常简单,用于传输一些小文件。它具有大量同步(RTT - 往返时间)和小缓冲区(基本上是 2048 B -来源)。

Rsync 注重性能,因此它能提供更好的结果并具有更多的功能。

10 倍加速仅适用于您的情况。如果您通过高延迟通道将文件传输到全世界,那么您的性能会差很多scp,但在本地网络上,性能几乎相同。

不,压缩(-C对于scp)不会有帮助。最大的问题是延迟和缓冲区大小。

答案2

RSYNC 与 SCP

SCP基本上使用 SSH 在本地或通过网络从源到目标进行简单的复制,但您可以使用交换机-C启用 SSH 压缩,以潜在地加快通过网络复制数据的速度。

同步通过网络连接仅传输两组文件之间的差异,使用高效的校验和搜索算法,在数据传输期间自动优化网络连接。

同步

描述

   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.

来源

相关内容