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