为什么使用Vagrant的VirtualBox vboxheadless进程会占用100%的CPU?

42
我正在使用几个虚拟机,但它们有时候/随机会占用我的OS X机器100%的CPU,我不知道是什么原因导致的。我可以通过ssh登录到虚拟机并检查负载,它为0,所以不是在虚拟机中运行的程序引起的。
我唯一能解决这个问题的方法是将其挂起然后恢复,然后问题就消失了,直到又突然发生。有时候几个小时之后,有时候几天之后。
我唯一能想到的可能是因为我在虚拟机内使用nfs挂载来访问我的项目,但我还不确定。你有什么建议吗?

虽然这是一个老问题,但我在最新的Vagrant/VBox中仍然遇到了这个问题。结果发现是由于我没有通过私有IP访问客户服务而导致了路由循环。请参见https://www.virtualbox.org/ticket/14137#comment:16。 - kirbuchi
我终于找时间来检查了。不,我一直在使用私有IP而不是本地IP。所以这是其他原因导致的问题。 - David
有一天,我用Safari观看YouTube视频,只打开了一个标签页,关闭了所有其他应用程序,但是我发现风扇速度变高了,在活动监视器中发现vboxheadless占用了高达60%的CPU。 - ssssssssssssssssssss
4个回答

26

如果您使用的是CoreOS,则EngineerCoder的答案才适用。

如果VirtualBox Extensions包的版本与VirtualBox的版本不同,我会遇到问题。此外,请安装Vagrant VirtualBox客户机插件:

vagrant plugin install vagrant-vbguest

请确保在更新Virtualbox和扩展包时更新插件:

vagrant plugin update vagrant-vbguest


2
好的,我尝试了这个方法,但仍然没有成功。:( 我打算尝试禁用 NFS 看看是否能解决问题。 - David
这有帮助吗,@David? - Greg Dubicki

17

3
config.rb应该放在哪里? - Luke
1
vagrant/plugins/providers/virtualbox/config.rb - EngineerCoder

6

步骤1:保持客户附加组件最新

确保您安装了vbguest插件,这将使您的客户附加组件保持最新状态:

vagrant plugin update vagrant-vbguest

如果尚未安装,则可以使用以下命令进行安装:

如果尚未安装,则可以使用以下命令进行安装:

vagrant plugin install vagrant-vbguest

步骤2:禁用声音

在VirtualBox窗口中:

  • 点击正在使用的虚拟机
  • 点击设置
  • 转到:音频选项卡
  • 取消选中“启用音频输出”和“启用音频输入”

步骤3:减少CPU消耗

(可选)注意:此步骤将降低您虚拟机的最大性能!

您可以减少总体CPU消耗:

  • 点击虚拟机 -> 设置 -> 系统 -> 处理器
  • 减少执行上限。这会限制虚拟机CPU使用主机CPU的百分比。(默认为100%-无限制)。

太不可思议了!所有其他答案都没有帮助,但是简单地禁用音频设备立即解决了我的问题!! - 为什么会这样?为什么在过去几个月(我实际上更新Virtualbox时)没有发生,但在最近几天才发生?这是Virtualbox的错误还是任何类型的循环?为什么禁用音频可以解决它?在一个我的机器甚至不依赖的设备上出现问题真是疯狂 - 无论如何,谢谢你,你结束了数小时的尝试弄清楚发生了什么,并让我回到实际的生产工作。 - Kamafeather
额外的问号:重新启用音频输入和输出不会立即引发正在运行的计算机上的CPU问题。虽然没有尝试重新加载。 - Kamafeather
这是来自Virtualbox论坛的一个示例或解决问题。顺便说一下,在我的情况下,只需取消选中“启用音频输入”即可;输出可以保持启用状态。 - Kamafeather

0

我已经禁用了系统完整性保护,以便能够使用iosnoop来诊断高ioctl活动,这似乎会导致100%的CPU使用率。

问题已经消失了。因此我相信这与SIP有关。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接