我们在本地托管合作伙伴处租用服务器,他们管理设置和设置,我们只是使用它们。但我们也有管理员权限,但管理权在他们那边。因此,如果我切换重要内容,我会提前通知他们。最近我发现至少有些服务器的电源选项设置为平衡计划。由于 Windows Server 2012 中建议使用此选项,我不明白为什么这个计划可能是最糟糕的?我想,既然我们都希望服务器的性能优于能耗,那么为什么仍然建议使用这个值呢?
另外,当我将其切换到高性能时,我看不出到底发生了什么变化,是否有人有在相同情况下以平衡模式运行和以高性能模式运行的服务器的测试结果?
对我来说,将其设置为高性能是显而易见的,但我想了解更多细节。据我所知,唯一的负面影响是电费,也许还有更多的硬件使用率。对吗?
如果我查看本地机器上的电源计划详细信息,我会在处理器电源管理下看到 CPU 选项,而在服务器上,处理器电源管理下只有系统冷却策略。似乎 CPU 在任何情况下都不会受到限制?!此设置在所有计划下似乎都相同。
答案1
简短答案 对于具有快速 C6(核心/模块电源门控)功能的现代处理器,两个电源配置文件之间的功耗差异可以忽略不计。另一方面,由于 CPU 在省电模式下的行为方式不同,使用“平衡”配置文件可能会损失相当大的性能。因此,我建议您使用“高性能”配置文件,除非您有充分的理由使用其他配置文件。
长答案 不同的功率配置通常会调整以下三个关键领域:
- CPU P 状态(频率/电压):在这些状态下,CPU 处于活动状态,尽管性能配置文件不同。P0 状态通常代表最高性能(和更高电压)的 CPU 状态,P1-2-3-4 等表示频率/电压曲线中的较低点。这意味着 P0 状态的功耗高于 P4 状态。保守的电源调节器可以强制 CPU 在较低功耗(和较低性能)的 CPU 状态下停留更长时间,甚至限制其最大频率。从 P 状态切换到另一个状态非常快(基本上它取决于进程改变其电压/频率的速度);
- CPU C 状态(空闲/待机状态):在这些状态下,CPU 或部分 CPU 处于关闭状态。因此,虽然 C0 表示完全活动的 CPU(没有处于休眠状态),但 C1 状态表示时钟停止,而 C1E 表示时钟停止和较低电压,依此类推。最后,从C6状态开始(Haswell 可以降到 C10)CPU 核心实际上为 0V,因此功耗非常低(只有外部组件(如 L2/3 缓存和总线)需要供电)。传统上,在 C0 和其他状态之间切换非常慢,因此 C1E+ 电源状态被降级为相对较长的空闲时间。Nehalem(第一代 i3/i5/i7)彻底改变了这一点,请阅读下文以了解它现在的工作原理;
- 外部链接频率/通道/等:内存、QPI 和 PCI-E 链路可以进行电源和通道门控,尽管方式不同。
上述信息如何影响电源调节器/配置文件?基本上,性能优化调节器会将时钟频率调到最高,消耗更多功率。但在空闲时,即使是性能调节器也会让内核发出 HALT 指令,这将使 CPU 处于 C1 状态。再空闲一段时间后,内核将进入 C2 状态,这时奇迹发生了:Nehalem 的 CPU(或 AMD 的 Bulldozer)随后在内部将 C2 状态重新映射到 C6 - 将电压降至 0。因此,即使电源调节器让 CPU 处于最大时钟频率(例如 3 GHz),C6 状态也会有效地覆盖它,使频率和电压为 0。一些处理器/PCU 甚至更积极,将 C1E(在 C1 时间之后和内核切换到 C2 之前自动进入)重新映射到 C6。 因此,简而言之:高性能电源调节器让 CPU 以最大速度运行,但现代 CPU 会在可能时自动关闭。这意味着性能调节器将提供高速和合理的功耗。
另一方面,“平衡”电源调节器将尝试调整到较低的 CPU 频率(以利用 P 状态节省)。虽然对于旧 CPU 来说这是非常合理的,但对于现代 CPU,您的功率只会略低。同时,由于调节器默认要求较低的频率,您可能会面临相当大的性能损失风险。此外,外部链接在休眠后通常唤醒速度较慢,因此这是平衡和保守电源选项的另一个速度受损风险。
正是由于这些原因,Windows 2008R2+ 平衡电源配置文件仅非常温和地尝试节省电力 - 在许多情况下,其行为与“高性能”行为相当。
一些有趣的读物:
答案2
在 Windows 2016 服务器上,从平衡模式切换到高性能模式时,我发现 Web 服务器/ASP.Net 性能提升了 50%(如 New Relic 中所示)。这真是太棒了。
因此我建议不要在专用服务器托管解决方案上使用平衡模式。