解决VirtualBox占用100%CPU的问题

时间:2023-01-21 23:38:30

原贴地址 http://blog.sina.com.cn/s/blog_4a94a0db0100h2ce.html


本文由五步蛇原创。


       一直使用VirtualBox虚拟机,但是忘记什么时候,一开虚拟机就占用100%的CPU,也不知道是VirtualBox升级的问题还是由于换了Win7,在学校没什么事的时候也就没怎么用,不过这两天弄东西经常用,但是却死活摆脱不了占用100%CPU的问题,甚至有了换虚拟机的想法,但是舍不得装的这几个系统,值得庆幸的是这个问题终于解决了。


       问题:在win7里用VirtualBox安装XP,在使用过程中XP的CPU占用100%,win7的CPU也占用100%。
       先是搜了几个中文网站的答案,大概存在这么几个方法。


1.Ubuntu下安装虚拟机,将CPU频率调节策略设置为Conservative
具体方法: # vim /etc/sysfs.conf #加入
                devices/system/cpu/cpu0/cpufreq/scaling_governor = conservative
                devices/system/cpu/cpu0/cpufreq/scaling_max_freq = 你的CPU主频
                另外/etc/modules里要加上相应的模块


2.开两个虚拟机,这个方法我用了,确实管用,但只在两分钟之内有效。


3.新建一个guest,不用分配硬盘,将RAM设为4M,与你的其他guest一起运行即可。这个我试了,不好使。


       还有其他的建议,无非就是关掉一些乱七八糟的功能,但是都没有解决问题。
       于是用英文搜索,终于找到了方法。也看到有老外用上边的第三种方法,说明在某种环境下,这个方法确实应该有用。


       下面介绍正解。
       方法:在win7下装了XP系统,或者类似的情况下,在虚拟机中,stop and disable the Windows Firewall/Internet Connection Sharing (ICS) services,也就是关闭防火墙并且关闭ICS,关闭ICS这个我没有做,单纯的关闭防火墙就立即解决了问题,XP中CPU的使用降到20%以下,win7中的CPU在10%左右。事到如今,证明我已经成功地解决了这个问题。至于关闭防火墙的具体步骤我就不说了,关闭ICS的步骤参照这里:http://support.microsoft.com/kb/306126。


       简单的分析了一下原因,太深奥的原理我也弄不明白。人们大多以为是虚拟机的问题,有的怀疑是电脑的CPU和VirtualBox不兼容的问题,还推荐去买什么什么样的CPU,但是个人认为这和虚拟机没有多大的关系,运行Ubuntu的时候就不会占用那么多资源,实际上在WIKIPEDIA中对ICS也就是因特网连接共享有这样的说明:在winxp sp3中ICS有一个bug。所以完全可以推测正是因为这个bug导致虚拟机运行时占用了100%的资源,与外界传输数据的渠道发生了堵塞,自然会影响运行。


       综上所述,问题解决了。
       这件事情告诉我们:学好英语很重要。