如何使 cpugovernor intel_pstate 稳定?

如何使 cpugovernor intel_pstate 稳定?

我正在尝试在 CPU 调节器中设置特定频率。但是,我无法这样做。我的处理器是 12*Intel(R) Xeon (R) CPU E5-2620 v3 @2.40 GHz

使用 intel_pstate 驱动程序,它提供 1.20 GHz -3.20 GHz 的频率范围。当前频率缩放比例,我无法设置为特定频率。我将调节器设置为性能。但这没有帮助。cpufreq-set -r -f 3.2GHz – 不起作用;

我尝试设置较低的频率;cpufreq-set -r -d 3.2GHz;没有显示任何错误,但即便如此,频率仍会随时间不断变化。

我禁用了 intel_pstate(在启动时)并激活了 acpi 驱动程序。但是使用 acpi,我最多可以在 12 个内核下获得 2.4 GHz。我可以使用 cpufreq-set -r -f 使这个 2.4 GHz 始终保持稳定。但我无法将其设置为 3.2 GHz。

有人能告诉我如何使用 cpugovernor,以便我可以将频率设置为 3.2 GHz 吗?我的操作系统是 ubuntu 14.4.3 LTS,内核版本是 3.19.0-25-generic。

cpufreq-info 显示以下结果。

analyzing CPU 0:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 0.97 ms.
  hardware limits: 1.20 GHz - 3.20 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 3.20 GHz and 3.20 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 2.85 GHz.

对于其他核心,结果也是这样的,并且当前频率随时间而变化。

屏幕截图_i7z

pstate 频率截图

答案1

您的处理器不可能始终处于最大 3200MHz 的涡轮增压速率。如果您同时激活多个内核,则最大频率将只有 2.6Ghz,并且该限制是处理器本身的基本限制(另请参阅您的 i7z 屏幕截图 - 最大涡轮增压倍数行)。但是,您可以通过相应地设置最小和最大百分比数字,轻松地让所有 CPU 始终处于 2.6 GHz。但是,请注意,您仍然会观察到有时频率较低,因为处理器可以在非常低的负载条件下自行降低。更简单的方法是将涡轮增压设置为关闭和性能模式,有效地使所有 CPU 始终以 2.4 GHz 运行(但同样,处理器本身可以在极低的负载下降低)。

设置 2.6Ghz 的示例(如果我的计算正确的话):

echo "81" | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct
echo "81" | sudo tee /sys/devices/system/cpu/intel_pstate/min_perf_pct

非涡轮方法的示例:

echo "1" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo
$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
powersave
powersave
powersave
powersave
powersave
powersave
powersave
powersave
$ sudo su
# for file in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo "performance" > $file; done
# exit
exit
$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
performance
performance
performance
performance
performance
performance
performance
performance

答案2

有一个名为的命令行工具状态频率

要安装它,只需按照存储库中的说明进行操作。

该脚本的作用是让你告诉 CPU 你的首选设置时钟速度州长涡轮增压

但请记住,由于较新的英特尔 CPU 经过高度优化,并可自行进行电源管理,因此您无法强制 CPU,而是建议您想要的操作。

从以下描述中可以看到pstate-frequency

对于当代的英特尔处理器,频率由处理器本身控制,而暴露给软件的 P 状态与性能水平相关。频率可以设置为单一频率的想法对于英特尔酷睿处理器来说是虚构的。即使扩展驱动程序选择单一 P 状态,处理器运行的实际频率也由处理器本身选择。

为了获得最高的时钟速度(理想情况下永久为 3.2 GHz)和性能调节器,请在安装脚本后执行此操作:

sudo pstate-frequency --color -S -p 3

您可以使用它pstate-frequency -G --color来获取当前设置的电源计划。

对于我来说,使用英特尔 i7-4790K,我可以获得所有核心永久 4400 MHz。

要检查当前 CPU 时钟,您可以使用:

watch -n 0,3 'cat /proc/cpuinfo | grep "MHz"'

这将列出所有 CPU 线程的时钟速度。

就我而言,设置电源计划‘3’([...] -p 3)(性能)后,我得到:

cpu MHz     : 4399.843
cpu MHz     : 4400.156
cpu MHz     : 4391.093
cpu MHz     : 4400.000
cpu MHz     : 4400.000
cpu MHz     : 4400.468
cpu MHz     : 4400.156
cpu MHz     : 4361.718

答案3

采用 Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz 和积极的intel_pstate/status 我只能设置最大频率 - 它仍然会在硬件最小频率(1,2 GHz)和我设置的最大频率之间波动。我可以通过设置来解决这个问题被动的模式。

echo passive > /sys/devices/system/cpu/intel_pstate/status
cpupower frequency-set --min 2400MHz --max 2400MHz

相关内容