我在服务器 A 中有 300 GB 的大文件。我在家尝试复制这些文件,但速度都scp
非常rsync
慢(80 KB/s 或更少)。
我还可以访问另一台服务器 B。我可以以20 MB/s 的速度scp
将所有文件从服务器 A 复制到服务器 B。rsync
最后,我可以以20 MB/s 的速度scp
将文件从服务器 B 复制到我家。rsync
有人可以帮助我理解为什么会发生这种情况(如果我可以解决它)。我是一个 Linux/网络新手,所以我很感谢任何在正确方向上的帮助。
概括:
A -> Home (super slow)
A -> B -> Home (a lot faster)
答案1
最大传输单元
路径 MTU 发现你和 之间似乎没有合作A
。
好的解决方案是解决这个问题,并且该网站上肯定有答案解释了如何做到这一点。
作为一个简单的解决方法,您可以在A
(更重要的)和家庭系统上的路由表中设置相应目标 IP 的 MTU。
为了不浪费带宽,您应该确定该路径的最大可靠 MTU。通过跑步来做到这一点
ping -s 1472 A
数字较低。尤其是1464有很好的机会。
简短版本:一些(大多数)IP 数据包太大,因此被丢弃。您必须强制A
(也许您的家庭系统也是如此,但无论如何,该方向的数据包可能足够小)发送较小的数据包。
路由表
您的路由表(在两个系统上)如下所示:
root@vm:~# ip r
default via 192.168.213.3 dev bridgeport
192.168.213.0/24 dev bridgeport proto kernel scope link src 192.168.213.122
用这个命令
ip route add 10.9.8.0/24 via 192.168.213.3 mtu 1480
您可以添加主机或子网的条目。您也可以使用该条目的默认网关。
您使用的设置mtu
是 1500 减去 1472 和您找到的值的差值(假设为 1464):
- 1472-1464=8
A-home
MTU = 1500-8 = 1492ip route add ... mtu 1492
root@vm:~# ip r
default via 192.168.213.3 dev bridgeport
10.9.8.0/24 via 192.168.213.3 dev bridgeport mtu 1480
192.168.213.0/24 dev bridgeport proto kernel scope link src 192.168.213.122
这不是永久设置。重新启动或(可能)网络重新加载后它将消失。ping
添加此路由后再次测试。