减少Linux耗电:一般设置和与调控器相关的设置(1)
减少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 显示所有可用频率。
评论暂时关闭