为什么与纯cp甚至是scp相比,我的rsync这么慢?


15

我通过安装份额(份额被安装在Linux文件transfering到Windows 7 视窗的Linux)..我复制大量数据(即近TB)从旧到新机器上我的局域网内。我已经很不幸了,我只有100MBit。自然地,我盲目地使用rsync,但是一天后已经想知道为什么感觉这么慢。启用进度表显示我的传输速率约为2MB / s。

因此,我取了一个合理的大文件(800MB)并跟踪了传输时间(1):

cp : 05:33
scp (2): 06:33
rsync : 21:51

1)我在每次运行之间删除了文件
2)通过本地主机将scp到同一台Linux计算机上直接复制到共享上;完全没用,但是提供了进度表

测试很简单

(cp|scp|rsync) <source> <destination>

除了用于scp的主机/端口外,没有其他特殊参数。我什至尝试了-Wrsync 的切换,但十分钟后取消了。rsync是在Lenny上运行的3.0.3。为了能够随时中断复制过程并继续进行,导致我进入rsync,但现在我认为我非常需要重新考虑这一要求。

这么大的差异怎么可能?

更新/解决:

感谢rschuler,我得以解决此问题:出于效率考虑,使用rsync守护进程而不是smb挂载。上面提到的DeltaCopy可以用,但是要注意一些事情

  • 这是一个很好的GUI包装器,但是如果出现问题,最好知道如何解决它。似乎我输入了用户凭据,在该凭据下运行rsync服务,这是第一次出错,但是GUI不允许我设置新的凭据。我发现它正在作为服务运行,并且能够在那里设置适当的凭据
  • 需要手动将端口添加到防火墙以允许连接
  • 个人喜好:确保共享受密码保护或没有密码保护,也许确保服务不会自动从Windows启动;以防万一
  • 包装的rsync二进制文件不是本机Windows端口,而是基于cygwin构建的。但是,包含的cygwin DLL无法正确处理UTF8并损坏了非ASCII字符。从http://www.okisoft.co.jp/esc/utf8-cygwin/获取固定的DLL 。

之后,传输速率从2MB / s跃升至〜8MB / s;绝对精彩!


您是否在每次测试之间删除目标文件?如果目标文件已经存在并且元数据不正确,则需要对源和目标进行校验和。
Zoredache

@Zoredache:我在两次运行之间删除了文件;还有-W开关应该忽略
马克

Answers:


18

(共享是从Linux上的Windows安装的)

那是你的问题。rsync正在对目标进行滚动校验和。Windows共享。您正在通过网络提取所有数据以计算校验和。(可能不止一次)。

您需要做的是在两台计算机上都运行rsync。这样,只有差异(和校验和)将通过网络电缆传输。 DeltaCopy是一个窗口化的rsync。它具有足够好的文档,可以助您一臂之力。

请参阅对此问题进行投票表决的答案,以获得更好的解释,为什么我认为您可能会滥用rsync。


宾果游戏,您的答案再恰当不过了。非常感谢,我学到了教训。
标记
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.