cpufreqd

折腾 linux mint 的时候,发现linux系统节能方面表现不太好. 后来找到了cpufreqd这个工具, 使用后发现非常好用,可以自定义规则来满足各种情况下的cpu设定, 极度灵活。

叹为观止, 在 cpu 频率调整方面堪称神器,强烈推荐给笔记本用户.

安装

linux mint 18中发现直接用软件管理器安装,不用添加ppa。

“开始菜单” -> “系统管理” -> “软件管理器”,搜索 cpufreqd:

Cpufreqd - 图1

直接安装即可。

配置

设置配置文件

cpufreqd 的精髓在于它可以通过配置文件来定制行为, 下面可以看到cpufreqd启动时时读取/etc/cpufreqd.conf中的配置信息:

  1. $ ps -ef | grep cpu
  2. root 1910 1 0 14:19 ? 00:00:01 /usr/sbin/cpufreqd -f /etc/cpufreqd.conf

cpufreqd.conf详细的配置文档说明请见下文(英文版): cpufreqd.conf - configuration file for cpufreqd.

开机自启动

cpufreqd 是一个命令行工具,因此开机自启动需要手工添加。

“开始菜单” -> “首选项” -> “开机自启动程序”,如图添加:

Cpufreqd - 图2

定制方案

注意事项

在使用 cpufreqd 调节时,最好能实时查看 linux 的系统日志,如果调节不成功,则系统日志中会有错误信息。

  1. tail -f /var/log/syslog

然后通过 conky 等工具实时查看 cpu 频率,可以知道是否调整符合预期。

常见的几个问题:

  1. policy 的支持,一般只支持到 performance 和 powersave 两种,如果设置为ondemand可能会报错
  2. cpu频率设置的太低,如果超过cpu物理支持的最低频率,也会报错
  3. rule名字重名

我的定制方案

下面是我给自己定制的cpu频率设置,给笔记本用的:

  1. [Rule]
  2. name=on-high
  3. ac=on
  4. acpi_temperature=0-50
  5. cpu_interval=20-100
  6. profile=high
  7. [/Rule]
  8. [Rule]
  9. name=on-normal
  10. ac=on
  11. acpi_temperature=50-60
  12. cpu_interval=20-100
  13. profile=normal
  14. [/Rule]
  15. [Rule]
  16. name=on-low
  17. ac=on
  18. cpu_interval=0-20
  19. profile=low
  20. [/Rule]
  21. [Rule]
  22. name=off-high
  23. ac=off
  24. acpi_temperature=0-50
  25. cpu_interval=20-100
  26. profile=high
  27. [/Rule]
  28. [Rule]
  29. name=off-normal
  30. ac=off
  31. acpi_temperature=50-60
  32. cpu_interval=20-100
  33. profile=normal
  34. [/Rule]
  35. [Rule]
  36. name=off-low
  37. ac=off
  38. profile=low
  39. [/Rule]

台式机的配置就要简单一些:

  1. [Rule]
  2. name=high
  3. acpi_temperature=0-50
  4. cpu_interval=5-100
  5. profile=high
  6. [/Rule]
  7. [Rule]
  8. name=normal
  9. acpi_temperature=50-80
  10. cpu_interval=5-100
  11. profile=normal
  12. [/Rule]
  13. [Rule]
  14. name=low
  15. cpu_interval=0-5
  16. profile=low
  17. [/Rule]

配置文件参考

下面是默认配置文件和我定制的配置文件,仅供参考:

更多功能

看到配置中支持针对某些应用做特殊设置, 比如默认配置中有这个例子:

  1. # use performance mode if I'm watching a movie
  2. # I don't care for batteries!
  3. # But don't heat too much.
  4. [Rule]
  5. name=Movie Watcher
  6. programs=xine,mplayer,gmplayer
  7. battery_interval=0-100
  8. acpi_temperature=0-60
  9. cpu_interval=0-100
  10. profile=Performance High
  11. [/Rule]

以后考虑针对自己的实际情况再做调整, 感觉 programs 这个参数可以增加很多的想象空间 :)