解决 VirtualBox 内的 Windows 上传速度很慢的问题

因为我电脑本身是有两张网卡的,两条网线分别接到自己拉的 移动网络和电信网络 (不过出去也是 移动网络,这是另外一回事了)。

我主机的默认路由是走自己拉的 移动网络,但我希望用 VirtualBox 开的虚拟机走电信网络,所以设置到网卡的连接模式是用桥接模式,用 DHCP 形式获取分配的 IP。

之前一直都没注意到,前几天在上传照片的时候感觉很慢 (之前就有发生了,一直忘记去追问题),然后就花了点时间寻找问题原因的时候发现是虚拟机里面的 Windows 10 上传很慢,上传速度慢这点可以从 Speedtest 的测试结果看到,如下图:

解决方案

先讲最后的结果,在交叉测了很多组合后,我发现遇到的问题是把网卡里的 Large Send Offload (IPv4) (也就是 LSO) 从 Enabled 改成 Disabled:

我推测可能的原因是:LSO 在虚拟机环境下,由于主机和虚拟机需要通过虚拟化层进行通信,可能会引发一些问题,导致了数据的一部分丢失或延迟,因此禁用 LSO 后上传速度才会恢复正常。

原因分析

回到当时测试问题的情况,当时先用不同设备测试都没遇到问题,所以应该只是虚拟机环境的问题,但不确定是什么情况,毕竟不是直接断网的情况,由于下载速度正常,只有上传速度卡住,一开始想到的是跟 MTU 相关的问题,所以找了指令降到 1400 后测试,结果还是一样的,然后再先把虚拟机的网络改成 NAT,再测试上传速度就正常了。

接着想要换个网卡类型看看,结果卡在找不到驱动。

本来已经想拿 tcpdump 出来分析了,但想说先去看看 windows 10 网卡设置里面的设置,结果看到 LSO…… 直觉就先关看看 (算是以前在 FreeBSD 以及 Linux 下的经验?)。然后一关就正常了,交叉再开关两次确认这个参数有影响,就肯定这个解决方式应该是有效了……

转载需保留链接来源:VCBeta.CN » 解决 VirtualBox 内的 Windows 上传速度很慢的问题

赞 (1)