Win10下VirtualBox的性能不佳

我们拥有一个构建系统,直到几周前,整个目标设备的完整构建大约需要1.5个小时。

在某个时候,这个时间已经增加到大约3.5小时,因为我们针对大约9个不同的目标进行了构建,所以将构建时间从14小时增加到了32小时。

我们认为我们终于确定了问题所在。我在Win10机器(来宾为Ubuntu 16.04)上运行的VM已复制到Win7机器。在设置,运行的磁盘类型等方面,VM完全保持不变。机器的配置也非常相似(相同的CPU,磁盘等)。

  

顺便说一句,我最初运行的是VirtualBox 5.x,而Win7操作系统的版本为6.0.12,但我不认为这是问题所在,因为升级到6.0.14并没有改变。即使将VM磁盘移动到我盒子上的SSD上,也没有什么缓解,这意味着几乎可以肯定它受CPU限制。

运行VM的Win7盒每次构建大约需要1.5个小时。

然后,我们对该框进行的仅 更改是对Win10的就地升级,并且瞧,构建现在也 花费3.5个小时。

一些研究表明,有几个人同时将VirtualBox / Win10作为主机和来宾有问题,但是给出了建议(视频内存增加,主机和来宾之间CPU /内存的重新平衡,启用/禁用视频加速)等等)似乎无法解决任何问题。

我们正在考虑一些想法,例如:

  • 在裸机上运行Ubuntu,但这显然使移动VM更加困难;
  • Linux 主机上运行这些Ubuntu来宾,因此,假设问题是Win10,我们在提高性能的同时仍允许VM移动性;
  • 坚持使用Win10,但使用VMWare Player而不是VirtualBox(当前正在测试以查看是否可行);
  • 将构建框恢复为Win7,但我认为IT部门不会对该提案感到满意(即,在批准该提议的过程中,它并不寄予希望:-))。

有人对前进的方式有其他想法吗?

yangliuliu2009 回答:Win10下VirtualBox的性能不佳

我们一直在进行调查,结果发现罪魁祸首是Windows 10中引入的Spectre2 / Meltdown缓解措施。

我们从一些网站上发现影响是多种多样的,但对于构​​建服务器场和开发人员箱却最为不利(例如,参见here

enter image description here

在使用Gibson Research InSpectre工具关闭缓解措施时(当然,为了安全起见,对机器进行了气密处理),构建再次降到每个目标一个半小时。

现在我们只需要弄清楚如何继续进行下去。我们可能必须在已经准备好源代码的气隙式机器上构建。


更多详细信息。我们所有的开发人员机器都是CPUID 306c3 Haswell,这是受到缓解影响特别严重的机器。我们将在更现代的处理器CPUID 810f10(AMD Ryzen 5)上对其进行测试,以查看影响是否较小。

如果是这样,我们可能会选择购买其中的几个。无论哪种情况,都将使用结果更新该答案。


希望这将是最终更新。尽管我们最初通过在Windows 主机中禁用Spectre / Meltdown缓解措施成功地恢复了速度,但考虑到可能被黑客入侵,这并不是一个切实可行的解决方案。

进一步的调查似乎表明,尽管VirtualBox在这种环境中遭受了损失,但VMware却没有。因此,我们一直在寻找可以解释差异的方法。

最终,我们遇到this thread,它描述了一个类似的问题,并且在那里尝试了一种建议的解决方案时,我们发现我们可以重新获得速度而不会损害主机操作系统。 / p>

解决方案是在VM关闭(未挂起)时,运行以下命令:

vboxmanage modifyvm VM_NAME --spec-ctrl on

其中VM_NAME应该替换为您的实际VM名称(通过vboxmanage list vms获得)。然后,在重新启动VM之后,它应该再次以正常速度运行。

不幸的是,这意味着我为整个开发团队购买新的Threadripper PC的商业案例现在已经崩溃。妈的,互联网:-)

本文链接:https://www.f2er.com/3169129.html

大家都在问