服務(wù)器節(jié)能的“坑”
現(xiàn)在服務(wù)器制造商提供的服務(wù)器,通常都具備節(jié)能功能。這個功能通常是通過調(diào)整CPU的主頻來實(shí)現(xiàn)的。
具有“節(jié)能”功能的CPU,設(shè)計有N個“能級”,稱為‘C-states’,這里有一篇詳細(xì)介紹的文章。大致意思是說,就是通過調(diào)整CPU主頻,使CPU處理不同的C-states(通過設(shè)置C-states,使CPU工作在不同的主頻),從而達(dá)到控制電能消耗。合理地使用這個特性,可以達(dá)到“節(jié)能”的目的。
而實(shí)現(xiàn)情況是,如何“合理”地使用,是件困難的事兒,需要結(jié)合自己的業(yè)務(wù)特點(diǎn)進(jìn)行不斷地調(diào)整。另外需要說明的是,主頻調(diào)整的過程對系統(tǒng)的性能是有影響的。
另外,風(fēng)扇的轉(zhuǎn)速也可以為了節(jié)能而進(jìn)行適當(dāng)?shù)目刂啤?/p>
大多數(shù)用戶,恐怕都不會關(guān)心“節(jié)能”問題。只有當(dāng)服務(wù)器的數(shù)據(jù)達(dá)到一定規(guī)模,電費(fèi)需要單獨(dú)付費(fèi)的用戶,才會關(guān)心。
但是,很多服務(wù)器通常默認(rèn)情況下就開啟了這些功能 ,根據(jù)配置的不同以及系統(tǒng)配置的不同,最壞的情況就是CPU總是工作在最節(jié)能狀態(tài),這時的頻率并沒有達(dá)到CPU的極限值。
之前在測試CPU性能的時候,就發(fā)現(xiàn)E5600的性能比E5500還不如的怪現(xiàn)象,現(xiàn)在想想,恐怕也是這個“節(jié)省”這個問題引起的。
不需要“節(jié)能”的用戶,為了得到更好的“性能”,應(yīng)該在BIOS中將所有節(jié)能功能都關(guān)閉,這個根據(jù)不同的設(shè)備商,配置項(xiàng)不盡相同。
已經(jīng)在線上的設(shè)備,怎么檢查這個問題呢?
如上圖所示,E5530處理器的主頻應(yīng)該是2.4G,但是下面顯示的cpu MHz(實(shí)時更新的)卻是1.6G。這說明了這臺機(jī)器的CPU工作在節(jié)能狀態(tài),說明了BIOS中開啟了“節(jié)能”功能 。
另外還有一個查看CPU頻率的工具:RHEL5上包名為cpufreq-utils,RHEL6上包名為cpufrequtils。
其中有cpufreq-info:
cpufreq-apref:
有時這個工具會無法工作,好像將/etc/init.d/cpuspeed服務(wù)打開,就可以了(沒有細(xì)究)。假如啟了cupspeed還是不支持,那就是真的不支持了。
下面說說,BIOS開啟了節(jié)能(很多很種方式、模式,Dell的叫PROFILE),機(jī)器已經(jīng)在線上了,不能關(guān)機(jī)調(diào)整,又發(fā)現(xiàn)CPU工作在降頻狀態(tài),能不能補(bǔ)救呢?
可以使用cpuspeed服務(wù)試試,在/etc/sysconfig/cpuspeed中,將GOVERNOR設(shè)置為performance,然后啟動cpuspeed服務(wù),再觀察CPU的主頻,看是否恢復(fù)到***頻率,假如不行,很不興,你的BIOS中設(shè)置的節(jié)能模式,不能由os控制。只能調(diào)整BIOS,重啟系統(tǒng)了。