关于虚拟机 VirtualBox 内的 Windows 上传速度很慢的问题

2 min


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

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

之前一直都没注意到,前几天用 Line 传照片的时候很慢 (之前就有发生了,一直忘记去追问题),花了点时间追问题的时候发现是虚拟机里面的 Windows 10 上传很慢,这点可以从 Speedtest 的测试结果看到:

关于虚拟机 VirtualBox 内的 Windows 上传速度很慢的问题

解决方案

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

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

分析

回到当时测试问题的情况,当时先用不同设备测试都没遇到问题,所以应该只是虚拟机环境的问题,但不确定是什么情况,毕竟不是直接断网……

由于下载速度正常,只有上传速度卡住,一开始想到的是跟 MTU 相关的问题,所以找了指令降到 1400 后测试,还是一样……

后来先把虚拟机的网络改成 NAT,再测试上传速度就正常了……

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

本来已经想拿 tcpdump 出来分析了,但想说先去看看 Windows 10 网卡设置里面的设置,结果看到 LSO…… 直觉就先关看看 (算是以前在 FreeBSD 以及 Linux 下的经验?)。

然后一关就正常了,交叉再开关两次确认这个参数有影响,就肯定这个解决方式应该是有效了……

另外在自己找完问题后,在「Virtualbox 7.0.12 slow upload speed in any Guest OS」这边看到了类似的问题以及同样的解决方案。

感叹 LSO 过了十几年还是……


Like it? Share with your friends!

0
Anonymous

Choose A Format
Story
Formatted Text with Embeds and Visuals
List
The Classic Internet Listicles
Countdown
The Classic Internet Countdowns
Open List
Submit your own item and vote up for the best submission
Ranked List
Upvote or downvote to decide the best list item
Video
Youtube and Vimeo Embeds