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

我正在通过已安装的共享将文件Linux传输到Windows 7(该共享是从Linux上的Windows安装的)..我正在从LAN中的旧机器复制大量数据(即几乎TB) .我已经很不幸了,我只有100MBit.当然我盲目地使用rsync但是在一天之后已经想知道它为什么感觉这么慢.启用进度表显示我的传输速率约为2MB / s.

所以我拿了一个合理的大文件(800MB)并跟踪传输时间(1):

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

1)我在每次运行之间删除文件
2)scp通过localhost直接将同一台Linux机器上的共享;完全无用但提供了进度表

测试很简单

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

除了scp的主机/端口之外没有特殊参数.我甚至为rsync尝试了-W开关,但在十分钟后取消了. rsync在Lenny上运行3.0.3.为了能够随时中断复制过程并恢复引导我到rsync,但现在我认为我真的需要重新考虑这个要求.

怎么可能有这么大的差异?

更新/解决

感谢rschuler,我能够解决问题:出于效率原因,使用rsync守护进程代替smb mount.所述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;绝对精彩!

解决方法

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

那是你的问题. rsync正在目标上执行滚动校验和.窗户共享.您正在通过网络提取所有数据来计算校验和. (可能不止一次).

您需要做的是在两台机器上运行rsync.这样,只有差异(和校验和)将通过网络电缆传输. DeltaCopy一个窗口化的rsync.它有足够好的文档可以让你前进.

请参阅此question的最终投票答案,以便更好地解释为什么我认为您可能会误用rsync.

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...