减少Linux耗电:一般设置和与调控器相关的设置(1)


CPUfreq 的一般设置

我们先来介绍 Linux CPUfreq 子系统的使用设置并提供一些接口选项,看看使用它是多么容易。先讨论一些一般设置:

/sys 接口

cpuspeed 设置文件

cpufreq-utils

使用 /sys 接口

/sys 文件系统为 CPUfreq 提供用户接口,起点是 /sys/devices/system/cpu/。其中一些文件是可写的由根用户写),其他文件是只读的。

首先,看看 /sys/devices/system/cpu/。在这里会找到每个逻辑 CPU 的目录和 sched_mc_power_savings 可调项,如果在系统上可用的话,还会找到 sched_smt_power_savings 可调项稍后讨论)。

清单 1. 检查 /sys/devices/system/cpu/ 的内容

[root@systemx ~]# cd /sys/devices/system/cpu/

[root@systemx cpu]# ls

cpu0 cpu1 cpu2 cpu3 cpu4 cpu5 cpu6 cpu7 sched_mc_power_savings

在每个处理器的目录内是一个 cpufreq 目录,它包含 CPUfreq 接口:

清单 2. 检查 cpufreq 目录

[root@systemx cpu]# cd cpu0/cpufreq/

[root@systemx cpufreq]# ls -l

total 0

-r--r--r-- 1 root root 4096 Oct 31 14:53 affected_cpus

-r-------- 1 root root 4096 Oct 31 14:53 cpuinfo_cur_freq

-r--r--r-- 1 root root 4096 Oct 31 14:53 cpuinfo_max_freq

-r--r--r-- 1 root root 4096 Oct 31 14:53 cpuinfo_min_freq

-r--r--r-- 1 root root 4096 Oct 31 14:53 scaling_available_frequencies

-r--r--r-- 1 root root 4096 Oct 31 14:53 scaling_available_governors

-r--r--r-- 1 root root 4096 Oct 31 14:53 scaling_cur_freq

-r--r--r-- 1 root root 4096 Oct 31 14:53 scaling_driver

-rw-r--r-- 1 root root 0 Nov 5 11:44 scaling_governor

-rw-r--r-- 1 root root 4096 Oct 31 14:53 scaling_max_freq

-rw-r--r-- 1 root root 4096 Oct 31 14:53 scaling_min_freq

加入 My developerWorks 上的绿色组

在 GReen IT Report space 和 My developerWorks 上的 Green computing group 讨论与能源、效率和环境相关的主题并分享参考资料。

如果调控器设置为 conservative 或 ondemand,还会在这里看到与调控器同名的目录。我们稍后讨论如何改变调控器。

对于每个调控器,都可以使用这些文件。我们将讨论每个设置的意义以及如何修改它们;然后讨论这个接口之外与调控器相关的一些设置。注意,对于每个处理器,cpufreq 目录下的设置可以不一样,因此要想跨处理器应用一致的策略,就必须按照后面的说明修改每个处理器的设置值。

首先,affected_cpus 显示修改频率会影响哪些处理器。由于硬件和/或软件的关联,一些处理器的频率是相互依赖的,必须同时修改频率。例如,可能会看到这种设置:

清单 3. 检查修改频率会影响哪些处理器

[root@systemx ~]# cd /sys/devices/system/cpu

[root@systemx cpu]# grep . cpu*/cpufreq/affected_cpus

cpu0/cpufreq/affected_cpus:0 1

cpu1/cpufreq/affected_cpus:0 1

cpu2/cpufreq/affected_cpus:2 3

cpu3/cpufreq/affected_cpus:2 3

接下来,cpuinfo_cur_freq 显示处理器当前的运行频率。scaling_cur_freq 文件列出调控器当前使用的扩展频率。

清单 4. 检查频率

[root@systemx cpufreq]# cat cpuinfo_cur_freq

2997000

[root@systemx cpufreq]# cat scaling_cur_freq

2997000

这个接口中列出的所有频率都以 KHz 为单位。

下面一些文件提供可用处理器频率的相关信息。cpuinfo_max_freq 和 cpuinfo_min_freq 文件包含系统可用的最大和最小频率;scaling_available_frequencies 显示所有可用频率。


相关内容