cputhrottle限制單一程式的CPU用量

有時候,我們在用電腦作一些比較耗資源的工作的時候,

會發現有其他的背景程式佔用著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一般來說就會改變,所以關閉之後再開就必須重新設定一次,

(設定完畢之後終端機可以關閉沒關係,不影響)

 

以上就是今天的分享,希望對大家有用

發佈留言