最近因為一些原因要使用VirtualBox來跑虛擬機,果然就是Sun自家的東西好用,對Solaris完美支持,而且對各類新的主流Linux發(fā)行版都提供了完美的支持,無奈VirtualBox下跑XP總會莫名其妙出現(xiàn)XP虛擬機的CPU占用達100%的現(xiàn)象,開始還總以為是VirtualBox不爭氣,后來終于找到了正確答案,尊重原作者版權(quán),現(xiàn)Mark一下,留做備用:
本文由五步蛇原創(chuàng)。
一直使用VirtualBox虛擬機,但是忘記什么時候,一開虛擬機就占用100%的CPU,也不知道是VirtualBox升級的問題還是由于換了 Win7,在學校沒什么事的時候也就沒怎么用,不過這兩天弄東西經(jīng)常用,但是卻死活擺脫不了占用100%CPU的問題,甚至有了換虛擬機的想法,但是舍不 得裝的這幾個系統(tǒng),值得慶幸的是這個問題終于解決了。
問題:在win7里用VirtualBox安裝XP,在使用過程中XP的CPU占用100%,win7的CPU也占用100%。先是搜了幾個中文網(wǎng)站的答案,大概存在這么幾個方法。
1. Ubuntu下安裝虛擬機,將CPU頻率調(diào)節(jié)策略設(shè)置為Conservative
具體方法:
# vim /etc/sysfs.conf
# 加入
devices/system/cpu/cpu0/cpufreq/scaling_governor = conservative
devices/system/cpu/cpu0/cpufreq/scaling_max_freq = 你的CPU主頻
另外/etc/modules里要加上相應(yīng)的模塊
2. 開兩個虛擬機,這個方法我用了,確實管用,但只在兩分鐘之內(nèi)有效。
3. 新建一個guest,不用分配硬盤,將RAM設(shè)為4M,與你的其他guest一起運行即可。這個我試了,不好使。
還有其他的建議,無非就是關(guān)掉一些亂七八糟的功能,但是都沒有解決問題。于是用英文搜索,終于找到了方法。也看到有老外用上邊的第三種方法,說明在某種環(huán)境下,這個方法確實應(yīng)該有用。
下面介紹正解。
方法:在Win7下裝了XP系統(tǒng),或者類似的情況下,在虛擬機中,stop and disable the Windows Firewall/Internet Connection Sharing (ICS) services,也就是關(guān)閉防火墻并且關(guān)閉ICS,關(guān)閉ICS這個我沒有做,單純的關(guān)閉防火墻就立即解決了問題,XP中CPU的使用降到20%以 下,win7中的CPU在10%左右。事到如今,證明我已經(jīng)成功地解決了這個問題。至于關(guān)閉防火墻的具體步驟我就不說了,關(guān)閉ICS的步驟參照這里:http://support.microsoft.com/kb/306126。
簡單的分析了一下原因,太深奧的原理我也弄不明白。國人大多以為是虛擬機的問題,有的懷疑是電腦的CPU和VirtualBox不兼容的問題,還推薦去買 什么什么樣的CPU,但是個人認為這和虛擬機沒有多大的關(guān)系,運行Ubuntu的時候就不會占用那么多資源,實際上在WIKIPEDIA中對ICS也就是 因特網(wǎng)連接共享有這樣的說明:在winxp sp3中ICS有一個bug。所以完全可以推測正是因為這個bug導致虛擬機運行時占用了100%的資源,與外界傳輸數(shù)據(jù)的渠道發(fā)生了堵塞,自然會影響運行。
綜上所述,問題解決了。這件事情告訴我們:學好英語很重要。