由于我主要将笔记本电脑用作台式机,因此我尝试将其 CPU 设置为最大频率。
CPU 是 Intel Core i5-3337U(双核,带超线程),使用 Intel Turbo Boost 技术时最高频率为 2.5GHz(2 个活动核心)和 2.70GHz(1 个活动核心)。
在开始之前,我使用 LINPACK 测试了 CPU 在负载下可以达到的频率,以查看是否尽管启用了任何主动省电功能,它仍可以达到 2.5GHz 的标称最大值;结果是可以的(运行测量watch -n 1 "cat /proc/cpuinfo | grep \"cpu MHz\""
)。
我选择使用这种cpufreq-set
方法:我已经安装了cpufrequtils
软件包,首先我尝试将 CPU 调节器设置为“性能”运行cpufreq-set -g performance
;我不知道这是否会以某种方式影响空闲频率的范围,但结果并不令人满意:在这种状态下,所有 CPU 的频率在 1.0GHZ-2.4GHZ 范围内不断下降和上升。
因此我尝试将 CPU 调节器设置为“用户空间”,以便最终能够设置固定频率;但是出现了以下错误:
Error setting new values. Common errors:
- Do you have proper administration rights? (super-user?)
- Is the governor you requested available and modprobed?
- Trying to set an invalid policy?
- Trying to set a specific frequency, but userspace governor is not available,
for example because of hardware which cannot be set to a specific frequency
or because the userspace governor isn't loaded?
经过一番研究,我发现使用该驱动程序时“用户空间”调控器不可用intel_pstate
;因此我尝试通过添加intel_pstate=disable
到内核参数/etc/defaults/grub
并更新来禁用它grub
;但是,重新启动后,什么都没有改变,我仍然无法切换到“用户空间”调控器。
总结
我如何启用“用户空间”调节器?
- 或者 -
如何设置 CPU 频率始终保持最大值?
答案1
当您使用performance
模式时,CPU 频率将始终保持在合理的最高水平。请注意,处理器本身可以在无负载或极轻负载条件下降低 CPU 频率,无论频率驱动程序指示它做什么。没有比模式更积极的 CPU 频率与负载响应performance
。
免责声明:我的大部分经验都来自 intel_pstate 驱动程序。
编辑:
请注意报告的 CPU 频率是如何解释的。使用 acpi-cpufreq 驱动程序时,您会得到要求的 CPU 频率,而不是实际的 CPU 频率。使用 intel_pstate 驱动程序时,您会得到上一个采样间隔内的平均实际 CPU 频率。在我看来,acpi-cpufreq 驱动程序在此方面提供了非常具有误导性的信息。
答案2
这是另一种方法。如果您想尝试此建议,请撤消 cpufreq 和 intel pstate 设置导致的任何更改。此外,禁用任何调节器设置
安装 TLP - 主要用于电源管理的工具。但它还有很多其他功能,例如配置 CPU 频率。
sudo add-apt-repository ppa:linrunner/tlp; sudo apt-get update; sudo apt-get install tlp tlp-rdw
sudo gedit /etc/default/tlp
找到以下行
CPU_SCALING_MIN_FREQ_ON_AC=0
CPU_SCALING_MAX_FREQ_ON_AC=0
CPU_SCALING_MIN_FREQ_ON_BAT=0
CPU_SCALING_MAX_FREQ_ON_BAT=0
将全部 0 改为 2500000,这是 khz 为单位的频率,即 2.5ghz。
保存并现在监控你的 CPU 频率。
更多信息和来源:http://linrunner.de/en/tlp/docs/tlp-linux-advanced-power-management.html#installation
http://linrunner.de/en/tlp/docs/tlp-configuration.html#scaling