我使用 rdiff-backup 备份我的数据。由于有些机器使用的是 Windows,我在那里安装了 sshd 和 rdiff-backup 以及 cygwin。备份可以工作,但速度相当慢。然后我使用 scp、ssh 通过管道复制、sftp 和 netcat 在不同系统之间进行了一些测试。在 Linux 机器之间一切正常。Scp/ssh 给我大约 70 MB/s。在 cygwin 上,速度下降到大约 8 MB/s。不过,使用 sftp 或 netcat 可以获得不错的速度。使用 netcat 时,我达到了 100 MB/s 以上。
我尝试使用不同的密码并禁用压缩。但这没有帮助。这些机器都是最近的机器,有几 GB 的 RAM 和硬件 RAID。我在运行 cygwin 的不同机器上尝试过,得到了类似的结果。我应该使用 netcat 并对其进行隧道传输吗?这似乎需要很多配置开销。Rdiff-backup 似乎不能使用 sftp,所以我在这里运气不好。我也不想使用 sshfs,因为 rdiff-backup 使用滚动校验和,我不想传输所有数据进行计算。
知道是什么原因导致速度减慢吗?
编辑:
有关cygwin环境的信息:
Windows 2008 Storage Server Standard Ver 6.0 Build 6002 Service Pack 2
CYGWIN_NT-6.0 filer 2.0.4(0.287/5/3) 2015-06-09 12:22 x86_64 Cygwin
openssh 6.8p1-1
编辑2
当我在 Linux 和 Windows 之间启用 scp 的详细输出时,我得到:
debug2: channel 0: rcvd adjust 65536
本次转移的价值始终相同。
Linux 和 Linux 之间进行的相同测试给我的结果如下:
debug2: channel 0: rcvd adjust 114688
这里的值随时间而变化,例如131072或者147456出现。