如何设置调节器以使英特尔能够像以前一样按需运行?

如何设置调节器以使英特尔能够像以前一样按需运行?

我曾经在 Governor 上用笔记本电脑工作过ondemand根据 CPU 使用率切换 CPU 频率多年来它运行良好,并具有三个非常重要的优点:

  • 硬件温度低
  • 静音风扇
  • 需要时提供高性能

现在我已经升级了我的笔记本电脑(到联想 B5400,英特尔奔腾 3550M) 和系统 (Ubuntu 14.10),我发现:

  • performancepowersave调控器可用;ondemand不再可用和支持
  • 设置文件发生了一些变化,因为每次启动时,当前的调节器和最小/最大速度都会恢复为默认值

因此我的系统:

  • 仍然让州长回到performance,我认为这是错误的
  • 无论调节器是什么,cpufreq-info 都会告诉我“频率应在 2.30 MHz 至 2.30 GHz 之间”尽管可用频率从 800MHz 开始

我尝试编辑/etc/init.d/cpufrequtils定义以下设置:

启用=“真”

GOVERNOR="节能"

MAX_SPEED="2300000"

最小速度="800000"

我也尝试编辑scaling_min_freq文件/sys/devices/system/cpu/cpu0/cpufreq并将其设置为 800000。

而且,猜猜看,重新启动系统后,我再次处于performance频率“在 2.30GHz 和 2.30GHz 之间缩放”的模式。


你能解释一下吗:

a) 在 Ubuntu 14.10 中,最小/最大 CPU 频率的主设置具体在哪里?

b)如何定义频率和调节器以实现与旧产品相同的结果ondemand?(我想以尽可能低的频率工作,并且只在重载时提高频率)

c)当然以及如何避免重置我所定义的内容。

我将非常感激您的解释。

答案1

对于兼容的处理器,Ubuntu 现在默认使用 intel_pstate CPU 频率调节器,而以前使用 acpi_cpufreq CPU 频率调节器。

intel_pstate 驱动器没有ondemand模式,但其powersave模式应与 acpi_cpufreq 模式相同ondemand。您的系统应powersave在启动后约 1 分钟通过/etc/init.d/ondemand脚本默认为模式。最近,该脚本无法正确处理 intel_pstate 情况,但现在应该已针对所有用例进行了修复。参考

回答您的实际问题:

A.) 主最小和最大频率以百分比数字存储。
cat /sys/devices/system/cpu/intel_pstate/min_perf_pct
cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
这些数字的解释取决于 turbo 启用或禁用标志,在我看来,定义存在不一致。
cat /sys/devices/system/cpu/intel_pstate/no_turbo

以我的 i7-2600K 为例:最小频率 1.6GHz;最大非涡轮频率 3.4GHz;最大涡轮频率 3.8GHz。
因此百分比为:
涡轮关闭:最大 = 100%,最小 = 47.1%
涡轮开启:最大 = 100%,最小 = 42.1%

$ cat /sys/devices/system/cpu/intel_pstate/no_turbo
0
$ cat /sys/devices/system/cpu/intel_pstate/min_perf_pct
42
$ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
100

$ cat /sys/devices/system/cpu/intel_pstate/no_turbo
1
$ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
100
$ cat /sys/devices/system/cpu/intel_pstate/min_perf_pct
42


B.) intel-pstatepowersave模式应该相当于 acpi-cpufreqondemand模式。

C.) 有错误导致您遇到麻烦。还有其他类似的报告。我自己不知道问题的根源,但也有报告称 cpufrequtils 不兼容。我不知道这些报告是否属实,因为我不使用任何此类东西。我只使用最原始级别的 intel-pstate 驱动程序控制。

答案2

我已将其设置.bashrc为别名(和root),因为我遇到了类似的问题。
别名如下所示:

alias performance="echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"  
alias powersave="echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"  
alias ondemand="echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"

然后,您可以在控制台powersave上写入以启用省电选项BASH。当我想使用特定的缩放调节器时,我将其输入/etc/rc.local

#!/bin/sh -e  
# rc.local  
# This script is executed at the end of each multiuser runlevel.  
# Make sure that the script will "exit 0" on success or any other   
# value on error.  
# In order to enable or disable this script just change the execution  
# bits.  
#  
# By default this script does nothing.  
for i in `ls -d /sys/devices/system/cpu/cpu*|grep -v cpufreq|grep -v cpuidle`; do echo ondemand > $i/cpufreq/scaling_governor; done
exit 0

您可能有多个处理器,因此请相应地进行编辑。我懒得写一个简短的脚本,但如果您要求我这样做,我会这样做 :)

编辑:我将脚本添加到/etc/rc.local

相关内容