Windows-Server-2012

是否有任何理由將電源選項保持在預設的“平衡”而不是“高性能”?

  • September 22, 2018

我們在本地託管合作夥伴處租用我們的伺服器,他們管理設置和設置,我們只是使用它們。但是我們也有管理員權限,但管理層在他們身邊。所以如果我切換重要的東西,我會事先讓他們知道。最近我發現至少有些伺服器的電源選項設置為平衡計劃。由於在 Windows Server 2012 中推薦使用此選項,我不明白為什麼此計劃可能是最糟糕的?既然我們都希望伺服器上的性能優於能源使用,我想,為什麼仍然推薦這個值?

另外,當我將其切換到高性能時,我看不到確切的變化,是否有人對在相同情況下以平衡和高性能執行的伺服器的測試結果?

對我來說,將其設置為高性能是很清楚的,但我想了解更多細節。據我了解,唯一的負面影響是電費,也許還有更常用的硬體……對嗎?

如果我在本地電腦上查看電源計劃的詳細資訊,我會在處理器電源管理下看到 CPU 的選項,在伺服器上,處理器電源管理下只有系統冷卻策略。似乎無論如何都沒有限制CPU?!此設置在所有計劃下似乎都是相同的。

伺服器設置

簡短答案 借助具有快速 C6(核心/模組電源門控)功能的現代處理器,兩種電源配置文件之間的功耗差異可以忽略不計。另一方面,由於不同的 CPU 在省電模式下的行為方式不同,使用“平衡”配置文件可能會損失相當大的性能。所以我建議您使用“高性能”配置文件,除非您有充分的理由使用不同的配置文件。

長答案 不同的功率配置文件通常會調整以下三個關鍵領域:

  • **CPU P 狀態(頻率/電壓):**在這些狀態下,CPU 處於活動狀態,儘管具有不同的性能配置文件。P0 狀態通常代表最高性能(和更高電壓)的 CPU 狀態,如 P1-2-3-4 等。表示頻率/電壓曲線中的較低點。這意味著 P0 狀態具有比 P4 更高的功耗。保守的電源調節器可以強制 CPU 在低消耗(和低性能)CPU 狀態下停留更長時間,甚至限制其最大頻率。從 P 狀態切換到另一個狀態非常快(基本上它是一個過程可以多快改變其電壓/頻率的函式);
  • **CPU C 狀態(空閒/待機狀態):**在這些狀態下,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(或 Bulldozer,對於 AMD)的 CPU 隨後在內部將 C2 狀態重新映射為 C6 - 將電壓降至 0。因此,即使電源調節器離開了CPU 在最大時鐘(比如 3 GHz),C6 狀態有效地覆蓋它,使頻率電壓為 0。一些處理器/PCU 更加激進,重新映射 C1E(在某個 C1 時間之後和核心之前自動進入切換到 C2) 到 C6。 因此,簡而言之:高性能電源調節器讓 CPU 以最高速度執行,但現代 CPU 在可能的情況下會自動關閉自己。這意味著性能調節器將提供高速和合理的功耗。

另一方面,“平衡”電源調控器將嘗試調整到下限 CPU 頻率(以利用 P 狀態節省)。雖然對於舊 CPU,這是非常合理的,但對於現代 CPU,您的功耗只會略微降低。同時,由於調控器預設要求較低的頻率,您可能會失去相當大的性能。此外,外部鏈路通常在進入休眠狀態後喚醒速度較慢,因此這是平衡和保守電源選項的另一個減慢速度的風險。

由於這些原因,Windows 2008R2+ 平衡電源配置文件只是非常溫和地嘗試節省電量 - 在許多情況下,它的行為與“高性能”配置文件相當。

一些有趣的讀物:

  1. http://www.anandtech.com/show/2919
  2. http://www.hardwaresecrets.com/article/Everything-You-Need-to-Know-About-the-CPU-C-States-Power-Saving-Modes/611/1

引用自:https://serverfault.com/questions/667351