为什么虚拟机暂停时Virtualbox使用15-20%的CPU?


10

我在带有Win XP客户机的Ubuntu上运行VirtualBox 3.1。我惊讶地注意到,当我暂停VM(其屏幕灰显)时,VirtualBox继续使用主机CPU的15-20%。

这是正常行为吗?

有办法避免吗?(不保存VM的状态并退出VirtualBox。)

感谢您的见解!

〜拉拉

Answers:


8

为了始终减少VirtualBox CPU使用率,请使用此怪异的方法。

创建一个新的虚拟机,并且不要在其上安装操作系统。告诉VirtualBox它将运行DOS,并提供绝对的最少资源。请勿安装操作系统。运行它,让它在启动时出错并最小化。

在第二个VM中运行实际的O / S时,您会看到空闲的Virtualbox CPU利用率下降到3-5%。

来自jed4czar的想法:http ://ubuntuforums.org/showthread.php?s=58e862a814e65eb96f8fe8389b615366&t=838073&page=2

编辑:直接回答您的问题

为什么虚拟机暂停时Virtualbox使用15-20%的CPU?

这是一个错误。除非使用提供的hack,否则在任何一台虚拟机启动时,它总是比需要多使用15-20%的CPU。

有办法避免吗?

请参阅上面的hack。


很高兴知道,vbox在启动时会分配possibliy使用的cpu源
Diskilla 2010年

ooooh它也为我修复了它!很好,谢谢。有关信息,我正在运行Windows 8.1,VM是centos,在空闲时间消耗的CPU约为15%。VBox v4.3.12
Sebas

令人惊讶的是这仍然是一个问题。
卡玛什

4

我使用DOS VM尝试了上述黑客攻击,但没有成功(在装有OS X的MacBook Pro上运行Ubuntu 12.04 guest虚拟机)。我还尝试了Oracle线程中提到的内核参数更改,再次没有更改。无论我做什么,我的客人似乎每个人都吃掉15-20%的CPU。但是,我注意到我恰好分配了2个CPU的一位来宾没有咀嚼15%至20%,它的表现符合预期。

果然,当我将其他切换到2个CPU时,问题消失了。根据以前的经验,我知道切换到2个CPU也会在主板部分启用IO APIC选项,因此我怀疑这是真正有趣的更改。也就是说,这个:

启用IOAPIC

请注意,必须关闭机器才能更改此设置,否则它会变成灰色。一旦在来宾系统上启用了此功能并重新启动,则无论我是否拥有1个或更多CPU都没关系,CPU利用率15-20%消失了,因此我想在这里分享我的解决方案。


1

在VM中运行Oracle 5的Windows 7 Quad盒上,我遇到了同样的问题。

按照亚当的建议,我检查了“已启用IO APIC”选项,但无济于事。因此,我遵循了kmarsh的想法,该想法大概花了不到一分钟的时间,处理器使用率从15-20%降至4-5%。

使用的设置为:名称:Memory Hack,类型:其他,版本:DOS。内存大小:4MB,硬盘驱动器:不要添加虚拟硬盘驱动器。点击[创建]。启动VM会要求启动盘,我用过:主机驱动器'D:',单击[启动]。虚拟机状态:“致命:无法从引导介质中读取!系统已停止。” 那时,CPU使用率下降了,所以我将窗口最小化了。启动另一个虚拟机没有什么区别。


看来这个问题是如此复杂,以至于没有人进行调整。
kmarsh 2014年

0

我在带有运行CentOS 5.5主机的3gigs ram的2-cpu P4机器上遇到了VirtualBox问题。

我在运行8位64位Win7的i720 8cpu计算机上没有遇到此问题。我运行了3个VMWare虚拟机以及VirtualBox,它们都具有2个内存,并且没有任何CPU问题。

这表明问题是在“小型”计算机上运行还是在Linux主机上运行。

您的解决方案效果很好,谢谢。

我注意到这些较早的文章已经使用了一年,而我的VirtualBox是最新的4.0.4版,因此Oracle尚未修复此错误。


2
我希望这种性能下降与新CPU具有VT-x的面孔有关,并且类似情况允许硬件辅助虚拟化,这意味着VirtualBox程序无法正常工作,从而降低了CPU使用率。P4可能没有VT-x技术,因此必须通过软件转换系统调用并使用更多的CPU。
Mokubai

现在必须已解决此问题。当我暂停来宾使用Ubuntu Host和运行VirtualBox v4.3.6的XP来宾时,CPU使用率下降了1%
Seeker

0

其他答案不能为我解释或修复错误(Debian主机,暂停的Ubuntu来宾)。Oracle为此提供了一个部分:

即使来宾系统似乎处于空闲状态,某些Linux来宾也可能导致较高的CPU负载。这可能是由来宾内核的较高计时器频率引起的。一些Linux发行版(例如Fedora)附带了配置为1000Hz计时器频率的Linux内核。我们建议重新编译来宾内核,并选择100Hz的计时器频率。

红帽企业版Linux附带的Linux内核以及相关Linux发行版的内核(例如CentOS和Oracle Linux)都支持内核参数Divider = N。因此,此类内核支持较低的计时器频率而无需重新编译。我们建议您添加内核参数divider = 10,以选择100Hz的来宾内核计时器频率。

来源:Linux guest虚拟机可能会导致较高的CPU负载

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.