![第一次运行时 cp 比 rsync 快吗?](https://linux22.com/image/205897/%E7%AC%AC%E4%B8%80%E6%AC%A1%E8%BF%90%E8%A1%8C%E6%97%B6%20cp%20%E6%AF%94%20rsync%20%E5%BF%AB%E5%90%97%EF%BC%9F.png)
我目前正在使用rsync
将 73GB 文件从三星便携式 SSD T7 复制到 HPC 集群。
rsync -avh path/to/dataset [email protected]:/path/to/dest
以下适用:
- 我的本地计算机(连接 T7 的地方)是运行 Ubuntu 20 的 VirtualBox VM。
- T7 传输速度应高达约。 1000MB/秒。
- 网络给我的上传速度大约为 7.9Mbps。
- 根据此,Rsync 传输速度可能将其瓶颈限制为 1-5MB/s回答。
问题是9个小时后搬迁仍未完成。根据1,使用cp
空目录更好(第一次)。我不明白这一点,也不明白这是否属实。有人可以解释一下吗?
答案1
你这么说,
- 您的网络速度约为 8 Mb/s。
- 您的
rsync
运行速度约为 1-5 MB/s。
鉴于 1 MB/s 大约为 10 Mb/s,我想说这对rsync
您来说是一个很大的帮助。
我,我可能会添加压缩-z
,并且由于您rsync
在网络连接上使用合理的标志,因此可能会中断它并重新启动压缩。它只会从上次中断的地方继续。
快速计算一下:73 GB 就是 73,000 MB *,也就是 730,000 Mb ‡。大约。您的网络速度为 8 Mb/s,这意味着复制大约需要 730,000/8 = 91,250 秒。 25 小时,假设理论最大使用网络带宽。
* 为什么是 1000:1 而不是 1024:1?部分原因是 GB:MB 严格为 1000:1,但主要是因为这是近似计算
‡ 为什么采用 10:1 而不是 8 位到 1 字节建议的 8:1?有两个原因:(a) 这是一个 O(n) 近似值,(b) 需要考虑数据包/协议开销。
现在尝试严格按照要求回答问题,即“第一次运行时 cp 比 rsync 快吗?“。如果您正在使用,cp
您需要有一些东西来管理本地和远程服务器之间的传输;这可能是类似sshfs
NFS 的东西,或者您可能意味着scp
.
cp
通过 NFS 安装的文件系统。通过良好调整的网络,这可能相当有效。cp
超过sshfs
。这不仅包括加密开销,ssh
还包括文件系统 FUSE 实现的内核和用户空间之间的转换。效率低下。scp
(隐式结束ssh
)。这将包括来自 的加密开销ssh
。可以接受,并且可能进一步受益于链接压缩 (-C
)。rsync
(隐含地结束了ssh
,因为我们没有提到rsyncd
)。这将包括来自 的加密开销ssh
。可以接受,并且可能进一步受益于协议压缩(-z
)。
我没有采取定量的绩效指标;这些是定性评估。但是,请注意类似答案的评论为什么 scp 这么慢以及如何让它更快?,尽管公平地说,这是讨论多个文件而不是一个大文件的比较传输速率。
然而,rsync
通过网络连接的优势在于它是可重新启动的。--partial
即使在传输过程中也有正确的标志(即)。对于一个 73GB 的文件来说,传输时间大约需要 25 小时,这是一个巨大的潜在优势。