将 CPU 调速器设置为“性能”有何影响?

将 CPU 调速器设置为“性能”有何影响?

我最近读到,我可以通过将调节器设置为“性能”而不是“省电”来提高 CPU 的性能。根据拱门维基,这将“以最大频率运行CPU”而不是“最小频率”。

我发现这个措辞令人困惑,所以我也阅读了内核文档

2.1 性能

CPUfreq调节器“性能”将CPU静态设置为scaling_min_freq和scaling_max_freq范围内的最高频率。

2.2 省电

CPUfreq 调节器“powersave”将CPU 静态设置为scaling_min_freq 和scaling_max_freq 范围内的最低频率。

“静态”是什么意思?对我来说,它与“动态”形成对比,并且意味着频率永远不会改变,即通过省电,CPU 频率将总是是单个值,等于scaling_min_freq。然而,事实显然并非如此。我目前默认运行“powersave”。我可以监控CPU频率

$ watch grep \"cpu MHz\" /proc/cpuinfo

并看到它们动态变化。

内核文档中的“静态”是什么意思?哪些因素会影响 CPU 频率,这些因素如何随“省电”和“性能”而变化?那么,从前者转变为后者意味着什么?会使用更高的频率吗?在什么情况下?具体来说,这会影响 CPU 的功耗、发热和使用寿命吗?

答案1

作为记录,(最新的)cpufreq文档在这里

“静态”是什么意思?对我来说,它与“动态”形成对比,并且意味着频率永远不会改变,即powersaveCPU频率始终是单个值,等于scaling_min_freq

你说得对。在旧的cpufreq驱动程序时代,有两种调速器:动态调速器和静态调速器。不同之处在于动态调控器 (ondemandconservative) 可以根据 CPU 利用率在 CPU 频率之间切换,而静态调控器 (performancepowersave) 永远不会改变 CPU 频率。
然而,正如您所注意到的,使用新驱动程序

事实显然并非如此。

这是因为新的驱动程序称为intel_pstate,操作方式不同。又名p-states操作性能点涉及主动电源管理和空闲竞争,这意味着调整电压和频率。更多详细信息请参阅官方文档。
至于你的实际问题,

将 CPU 调速器设置为“性能”有何影响?

同一份文件中也对此做出了回答。与所有一样天湖+处理器,CPU 的运行模式是 - 默认情况下 -“带 HWP 的主动模式”所以使用州长的含义performance是(强调我的):

HWP + 性能

在此配置中,intel_pstate will写入0处理器的能源性能首选项 ( EPP) 旋钮(如果支持)或其能源性能偏差 ( EPB) 旋钮(否则),这意味着处理器的内部 P 状态选择逻辑预计将完全关注性能,

这将覆盖来自界面的EPP/设置(请参阅下面的能量与性能提示)。 此外,在此配置中,处理器内部 P 状态选择逻辑可用的 P 状态范围始终限于上限(即允许驱动程序使用的最大 P 状态)。EPBsysfs


简而言之:
intel_pstate实际上是一个州长和一个硬件驱动程序一体。它支持两种策略:

  • 政策performance总是选择最高的 p 状态:最大化性能,然后返回到虚拟零能量消耗状态,也称为“竞赛到空闲”
  • powersave策略试图在性能与节能之间取得平衡:它根据 CPU 利用率(此特定 p 状态下的负载,在进入更高的 p 状态时可能会下降)和容量(最高性能下的最大性能)来选择适当的 p 状态。 p状态)

答案2

根据我个人的经验,对于我使用的每台计算机,“省电”都允许 CPU 频率/电压缩放,并默认在空闲时缩小 CPU 的缩放比例,而“性能”仅在需要时使用 CPU 频率/电压缩放,例如,当处理器的运行超出热范围时。

我还有一个问题,禁用频率缩放是否也与将调速器从“省电”模式更改为“性能”模式具有相同的影响,或者这些调速器是否还更改了除缩放之外的一些其他逻辑参数,这些参数也会影响性能。例如,在“性能”调节器下,“最小”频率阈值似乎被忽略,CPU 会自动跳转到其热范围内的最高可用频率。因此,更改频率调节器和简单地将“最小/最大频率”设置为其最高值之间似乎没有功能差异。

为了测试这一点,我安装了 HardInfo 0.6-alpha 并使用以下三个设置中的每一个运行了所有性能测试的多个实例:

1. Governor: Performance, max and min cpu frequency both set at max
2. Governor: Performance, max cpu frequency at max, min frequency at min
3. Governor: Powersave, max and min cpu frequency both set at max

在误差范围之外,我看不到这三种设置之间有任何一致的性能偏差。具有更多测试经验的人可能能够针对这些性能设置之间的差异进行更彻底的工作测试。但出于实际目的,它们似乎是相似的。因此,主要问题就变成了简化 CPU 控制 UI,以消除任何不必要的复杂性。将 pstate 调速器从省电模式更改为性能模式似乎比简单地将最小/最大频率锁定在一起是多余的。

对于专用计算系统,将 CPU 置于“性能”调速器以匹配其专门的工作负载会更容易,但对于多用途工作站,将调速器置于省电状态并通过 min/ 调整性能可能更有意义。 max 设置使用户能够对特定性能场景进行更细粒度的控制。

答案3

我不确定您正在阅读哪个页面,但该页面CPU频率缩放wiki.archlinux 上提到:

从内核 3.4 开始,必要的模块会自动加载,并且默认启用推荐的 ondemand 调控器。

ondemand当系统上有足够的负载以受益于速度的提高时,即 CPU 上有某些内容在整个时隙内运行时,调速器会提高 CPU 速度。

检查您正在运行的调控器,看看它是否确实是ondemand(),可能不需要更改默认值。/sys/devices/system/cpu/cpufreq/policyN/scaling_governor

performance并且powersave确实似乎直接将频率设置为最大和最小(分别),并且不会根据负载而改变它。


除此之外,维基页面还提到了在 Sandy Bridge 系统及更高版本上performance扮演的角色。ondemand这也是这些机器上的默认设置。所以,想一想,如果您的系统足够新,您可能会看到它的实际效果。检查链接到一篇讨论这个的文章在维基上。

相关内容