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