Answers:
如果目标已经包含一些源文件,则rsync显然比scp更快,因为rsync仅复制差异。但是我怀疑您的问题是关于直接复制到空目标。
您已将-z
选项传递给rsync
; 这将打开压缩。如果网络带宽是限制因素(通常是限制因素),则压缩可以显着提高传输速度。
您也可以scp
通过传递-C
选项启用压缩。这应该甚至可以解决rsync问题。ssh默认不启用压缩,因为它可以节省带宽,但会增加延迟和CPU开销。延迟对交互式会话不利(不适用于scp
),并且如果要复制的文件已经压缩,则CPU开销无用。
较旧的版本rsync
使用rsh而不是ssh作为默认的传输层,因此可以在rsync
和之间进行比较rcp
。但是ssh自2004年1月1日发布2.6.0以来一直是默认设置。
使用相同的压缩设置,我期望rsync
并scp
具有基本相同的速度。否则,请分享基准。
rsync -z
它仍然比scp
启用这些答案中建议的任何压缩速度都要快。它也比手动压缩和归档到一个文件然后scp
对文件scp
进行压缩要快得多(压缩比这还要慢)。所以OP的问题却仍然没有答案:问心无愧是scp
比较这么慢rsync
?
快速尝试scp
scp -p -C -o 'CompressionLevel 9' -o 'IPQoS throughput' -c arcfour machine:file .
与普通的scp machine:file相比,这些选项在我的设置中将scp加快了5倍。
2017年更新
实际上,由于对TCP详细信息(例如MTU和缓冲区大小)的管理不善,scp速度很慢。幸运的是,此问题已由HPN SSH项目修复。据我了解,您可以将HPN SSH用作rsync的传输。
scp -p
将默认值保留(保留日期/时间),并且可能-r
(递归)保留默认值scp -pr -C ...
。(我只好使用这些来-p
它曾经是相反的方式,但是我相信rsync的速度在过去的一些修订中已大大提高。这也取决于您要复制多少文件。如果很多,rsync通常会更快,因为scp为要复制的每个文件生成一个新进程。您可以尝试弱化scp所使用的密码,以查看它是否加快了速度。最后我记得,arcfour密码是最快的。