引言: 現在電腦CPU耗電很大,按需調節(jié)CPU頻率對普通桌面及移動設備節(jié)能有重要的意義。Linux提供的對CPU頻率調節(jié)的功能對CPU性能使用受到一些限制,需要系統(tǒng)管理員對相關參數優(yōu)化及設置來確保CPU性能最大化。本文對常見的RedHat 6、7系列及Debian Gnu/Linux 8系列中CPU頻率調整工具的使用進行描述,以方便Linux用戶進行該方面工作的優(yōu)化。
現在電腦CPU耗電很大,按需調節(jié)CPU頻率對普通桌面及移動設備節(jié)能有重要的意義。目前,多數Linux發(fā)行版都已經默認啟用了這個功能,但在一些像數據庫、集群系統(tǒng)等特別需要CPU高性能的服務器環(huán)境中,Linux提供的這種對CPU頻率調節(jié)的功能對CPU性能使用受到一些限制,不利于系統(tǒng)性能的更好發(fā)揮。為此,需要Linux系統(tǒng)管理員對相關參數優(yōu)化及設置來確保CPU性能最大化。
本文將針對應用中常見的RedHat 6、7系列及Debian Gnu/Linux 8系列中CPU頻率調整工具的使用進行描述,以方便Linux用戶進行該方面工作的優(yōu)化。
在Linux中,內核的開發(fā)者定義了一套框架模型來完成CPU頻率動態(tài)調整這一目的,它就是CPUFreq系統(tǒng)。盡管在各個Linux發(fā)行版中,前端軟件稍有差異,但其最終都會通過Linux內核的CPUFreq系統(tǒng)來實現CPU頻率動態(tài)調整的功能。這些軟件都會提供如下CPU模式(governor參數):
系統(tǒng)默認的超頻模式,按需調節(jié),內核提供的功能,不是很強大,但有效實現了動態(tài)頻率調節(jié),平時以低速方式運行,當系統(tǒng)負載提高時自動提高頻率。以這種模式運行不會因為降頻造成性能降低,同時也能節(jié)約電能和降低溫度。一般官方內核默認的方式都是ondemand。
流暢度:一般,流暢。
交互模式,直接上最高頻率,然后看CPU負荷慢慢降低,比較耗電。
流暢度:最高,極流暢。
Interactive是以CPU排程數量而調整頻率,從而實現省電。
InteractiveX是以CPU負載來調整CPU頻率,不會過度把頻率調低。所以比Interactive反應好些,但是省電的效果一般
保守模式,類似于ondemand,但調整相對較緩,想省電就用他吧。Google官方內核,kang內核默認模式。
流暢度:高,流暢。
聰明模式,是I和C模式的升級,該模式在比interactive模式不差的響應前提下,會做到了更加省電。
流暢度:最高,流暢。
性能模式,只有最高頻率,從來不考慮消耗的電量,性能沒的說,但是耗電量……
流暢度:流暢度高于interactive。
省電模式,通常以最低頻率運行。
流暢度:極低。
用戶自定義模式,系統(tǒng)將變頻策略的決策權交給了用戶態(tài)應用程序,并提供了相應的接口供用戶態(tài)應用程序調節(jié)CPU運行頻率使用。也就是長期以來都在用的那個模式。可以通過手動編輯配置文件進行配置。
流暢度:根據設置而定。
類似于ondemand,但是CPU會在關屏下嘗試關掉一個CPU,并且?guī)в衐eep sleep,比較省電。
流暢度:一般,流暢。
在進行CPU頻率優(yōu)化之前,我們首先需要使用命令lsmod|grep "acpi_cpufreq"查看內核是否加載了acpi_cpufreq模塊,如果加載了此模塊,按照一般情況發(fā)行版都會將CPU設置為“ondemand”模式。
之后,可以通過命令cat/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies進一步確認CPU節(jié)能模式,但此時用戶無法進行修改,需要進行修改必須使用命令安裝cpufreq管理軟件。在Debian Gnu/Linux下使用如下命令:apt-get install cpufrequtils,在RedHat6一下版本中使用如下命令 :yum install cpuspeed,在RedHat7系列版本中使用如下命令:yum install kernel-tools。之后我們就可以通過修改相應系統(tǒng)所在配置文件并重啟相關服務,使CPU按照我們的要求配置參數進行運行。
Debian Gnu/Linux 8、RedHat6一下版本、RedHat7系列版本cpufreq管理軟件配置文件分別為/etc/init.d/cpufrequtils、/etc/sysconfig/cpuspeed、/setc/sysconfig/cpupower。修改Debian Gnu/Linux 8配置文件中GOVERNOR="ondemand"為GOVERNOR="performance",RedHat6一下版本配置文件中GOVERNOR為GOVERNOR=performance,RedHat7系列版本配置文件中CPUPOWER_STOP_OPTS=”frequency-set-gondemand”為CPUPOWER_STOP_OPTS=”frequencyset-g performance”。
在Debian Gnu/Linux 8、RedHat6一下版本、RedHat7系列版本中分別執(zhí)行/etc/init.d/cpufrequtils restart、/etc/init.d/cpuspeed restart、systemctl restart cpupower.service命令即可重啟相關cpufreq管理軟件。
從 kernel 3.9 開始,名為pstate的新的功率驅動程序將會在以下的驅動程序之前自動為現代的Intel CPU啟用。該驅動會優(yōu)先于其他的驅動程序,因為它是內置驅動,而不是作為一個模塊來加載。該驅動自動作用于Sandy Bridge和Ivy Bridge這兩個類型的CPU,在該模式下,CPU只能被設置成performance或者powersave模式。如果您在使用這個驅動的時候遇到問題,建議您在Grub的內核參數中對其禁用(即修改/etc/default/grub文 件,在GRUB_CMDLINE_LINUX_DEFAULT= 后添加intel_pstate=disable)。