有時候,我們在用電腦作一些比較耗資源的工作的時候,
會發現有其他的背景程式佔用著CPU,而無法使得真正重要的工作使用更多的CPU,
或者明明沒開幾個程式,但是CPU卻一直飆高,電腦溫度也一直在70、80度。
在這種情況下,就是cputhrottle登場的時候了。
以我今天的例子來說,我的Dropbox常常會吃70~90%的CPU,
但是Dropbox並不是我目前急需使用的軟體,
另一方面,我又不想關閉Dropbox,
因此,這時候,我找到了cputhrottle,使得Dropbox的CPU用量下降。
首先,我們到這裡下載cputhrottle的主程式
(直接下載連結:cputhrottle.gz)
下載之後解壓縮,為了方便教學,這裡請大家直接把解開的cputhrottle放在桌面。
之後開啟活動監視器(在應用程式 > 工具程式 底下),找到我們要降低CPU的程式,看到前面有一串數字,
記住這個數字(PID)(這裡是Dropbox的28096)
之後開啟終端機,輸入
cd ~/Desktop
chmod 755 ./cputhrottle (第一次使用才要輸入)
sudo ./cputhrottle [PID] [CPU用量]
chmod 只有第一次使用cputhrottle才要輸入,
第三行的話,以Dropbox為例,我們的PID是28096,我想把CPU降為20%
所以輸入
sudo ./cputhrottle 28096 20
按下Enter之後系統會要你輸入密碼,如果沒設定使用者密碼的人,要先設定才可以使用sudo的指令。
這樣,Dropbox的CPU用量就會下降到20%以內了~
不過我來補充一下原理,(我大概看看簡易說明的而已,有誤請指正)
在Unix系統中,有個叫做SIGSTOP跟SIGCONT的指令,
它可以使得一個程序暫停跟繼續執行,
而這個CPU限制的原理就是,當該程式超過設定量的時候,就會被暫停,降低到設定量以內,再繼續執行。
由於切換暫停跟繼續的速度算是蠻快的,所以感覺不大出來,
不過皮樂還是不建議把這個方法用在重要的系統程序上面,以免造成系統不穩定。
(但是系統程序中,mds跟mdsworker是Mac Spotlight用的,如果設定它們的CPU限制的話可能還好,有待勇者測試)
另外,這個方法的缺點是,一旦程式關閉之後,PID一般來說就會改變,所以關閉之後再開就必須重新設定一次,
(設定完畢之後終端機可以關閉沒關係,不影響)
以上就是今天的分享,希望對大家有用
發佈留言