Linux系统CPU频率调整工具使用

社会主义新天地 提交于 2020-05-02 14:28:57

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参数):

  1. ondemand:系统默认的超频模式,按需调节,内核提供的功能,不是很强大,但有效实现了动态频率调节,平时以低速方式运行,当系统负载提高时候自动提高频率。以这种模式运行不会因为降频造成性能降低,同时也能节约电能和降低温度。一般官方内核默认的方式都是ondemand。

  2. interactive:交互模式,直接上最高频率,然后看CPU负荷慢慢降低,比较耗电。Interactive 是以 CPU 排程数量而调整频率,从而实现省电。InteractiveX 是以 CPU 负载来调整 CPU 频率,不会过度把频率调低。所以比 Interactive 反应好些,但是省电的效果一般。

  3. conservative:保守模式,类似于ondemand,但调整相对较缓,想省电就用他吧。Google官方内核,kang内核默认模式。

  4. smartass:聪明模式,是I和C模式的升级,该模式在比interactive 模式不差的响应的前提下会做到了更加省电。

  5. performance:性能模式!只有最高频率,从来不考虑消耗的电量,性能没得说,但是耗电量。

  6. powersave 省电模式,通常以最低频率运行。

  7. userspace:用户自定义模式,系统将变频策略的决策权交给了用户态应用程序,并提供了相应的接口供用户态应用程序调节CPU 运行频率使用。也就是长期以来都在用的那个模式。可以通过手动编辑配置文件进行配置

  8. 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 8RedHat6一下版本、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)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!