减少Linux耗电:一般设置和与调控器相关的设置(1)(2)
清单 5. 检查最大、最小和可用频率
[root@systemx cpufreq]# cat cpuinfo_max_freq
2997000
[root@systemx cpufreq]# cat cpuinfo_min_freq
1998000
[root@systemx cpufreq]# cat scaling_available_frequencies
2997000 2664000 2331000 1998000
scaling_available_governors 文件列出可用的所有调控器。如果没有看到全部五个调控器,要检查在配置文件中是否启用了所有调控器并确保按第 1 部分中的说明装载了调控器的模块。
清单 6. 检查可用的调控器
[root@systemx cpufreq]# cat scaling_available_governors
ondemand powersave conservative userspace performance
scaling_driver 文件说明系统正在运行哪个 cpufreq 驱动程序。典型的驱动程序包括 acpi、speedstep-smi、speedstep-centrino、powernor_k8、powernow_k7、longhaul 等。如果希望改变驱动程序,需要先卸载正在使用的驱动程序,然后再装载另一个驱动程序。另外,在使用之前,一定要检查驱动程序是否适用于您的处理器。
清单 7. 检查系统正在运行哪个 cpufreq 驱动程序
[root@systemx cpufreq]# cat scaling_driver
centrino
这个目录中的其他文件可以由根用户写,可以通过它们修改一些 cpufreq 设置。这些文件只包含允许用户修改的 powersave 和 performance 调控器设置。其他调控器有更多设置可用,我们在下一节中讨论。
首先,scaling_governor 文件显示当前启用的调控器。要想改变调控器,只需把新调控器的名称 echo 到这个文件中。注意,要想应用一致的策略,必须对每个处理器这么做。例如:
清单 8. 检查启用的调控器并改变调控器
[root@systemx ~]# cd /sys/devices/system/cpu/
[root@systemx cpu]# ls
cpu0 cpu1 cpu2 cpu3 cpu4 cpu5 cpu6 cpu7 sched_mc_power_savings
[root@systemx cpu]# cat cpu0/cpufreq/scaling_governor
performance
[root@systemx cpu]# echo conservative > cpu0/cpufreq/scaling_governor
[root@systemx cpu]# cat cpu0/cpufreq/scaling_governor
conservative
scaling_max_freq 和 scaling_min_freq 文件显示调控器可用的最大和最小频率。通过把一个可用的频率 echo 到这些文件中,用户可以修改调控器可用频率的范围。注意,这个频率必须是 scaling_available_frequencies 中列出的频率之一,因为这些是系统可用的所有处理器频率。同样,必须对每个处理器这么做。例如:
清单 9. 修改调控器可用的频率
[root@systemx ~]# cd /sys/devices/system/cpu/
[root@systemx cpu]# cat cpu0/cpufreq/scaling_available_frequencies
2997000 2664000 2331000 1998000
[root@systemx cpu]# cat cpu0/cpufreq/scaling_max_freq
2997000
[root@systemx cpu]# cat cpu0/cpufreq/scaling_min_freq
1998000
[root@systemx cpu]# echo 2331000 > cpu0/cpufreq/scaling_min_freq
[root@systemx cpu]# cat cpu0/cpufreq/scaling_min_freq
2331000
使用 cpuspeed 设置文件
除了像前面提到的那样直接 echo 设置值,用户还可以使用 cpuspeed 设置文件修改驱动程序、调控器、最大速度、最小速度、利用率阈值和 ignore_nice_load 设置。RHEL 5.2 附带 cpuspeed,但是其他 Linux 发行版可能不包含这个包。如果您的发行版不包含 cpuspeed,可以 下载 carlthompson.net 版本;README 中提供安装说明。要想使用 cpuspeed 的 RHEL 5.2 版本,只需编辑 /etc/sysconfig/cpuspeed 文件,在文件中设置任何变量值,然后执行以下命令:
/etc/init.d/cpuspeed restart
这个命令会让新设置生效。请记住,必须装载相应的调控器模块,才能开始使用调控器,除非它已经是内置的。
使用 cpufreq-utils
RHEL 5.2 和其他一些发行版还附带 cpufreq-utils 包,它为 CPUfreq 子系统提供另一个用户接口。大多数其他发行版应该也包含这个包。在安装 cpufreq-utils rpm 时,会得到两个实用程序 cpufreq-info 和 cpufreq-set。
cpufreq-info 实用程序列出处理器的相关信息及其 CPUfreq 设置,比如当前频率、频率限制、CPUfreq 驱动程序、当前策略、当前调控器和 affected-cpus 列表。
在启用 userspace 调控器时,cpufreq-set 实用程序让用户可以修改每个处理器的可用频率范围、使用的调控器和当前运行频率。更多信息见 cpufreq-info 和 cpufreq-set 手册页。
与调控器相关的设置
现在讨论用户可以在内核调控器中修改的设置。
powersave 和 performance 调控器
这两个调控器分别把处理器频率静态地设置为最低和最高频率。用户只能修改前一节中讨论的设置。
userspace 调控器
评论暂时关闭