Windows Server 平衡電源計畫的處理器電源管理 (PPM) 調整
從 Windows Server 2008 開始,Windows Server 提供三種電源計畫:[平衡]、[高效能] 和 [省電]。 [平衡] 電源計畫是預設選擇,旨在為一組典型伺服器工作負載提供最佳能源效率。 本主題描述過去數個 Windows 版本中,已用來判斷「平衡」配置預設設定的工作負載。
如果您所執行伺服器系統的工作負載特性或效能和電源需求與這些工作負載截然不同,則可以考慮調整預設電源設定 (即,建立自訂電源計畫)。 其中一個有用的調整資訊來源是伺服器硬體電源考量。 或者,您可能會決定 [高效能] 電源計畫是適合您環境的選擇,並認識到您可能會耗用大量能源,以換取一定程度的回應性提升。
重要
除非您有建立自訂電源原則的特定需求,而且非常瞭解您的結果將會根據工作負載的特性而不同,否則您應該利用 Windows Server 隨附的電源原則。
Windows 處理器電源調整方法
測試過的工作負載
系統會選取工作負載,以涵蓋「一般」Windows Server 工作負載的最佳集合。 顯然,此集合並非代表真實世界伺服器環境的整個廣度。
每個電源原則中的調整都是由 Windows Server 2008 所啟動的下列五個工作負載所驅動的資料
IIS 網頁伺服器工作負載
稱為 Web 基礎的 Microsoft 內部基準用來最佳化執行 IIS 網頁伺服器之平台的能源效率。 安裝程式包含一部網頁伺服器以及多個可模擬 Web 存取流量的用戶端。 動態、靜態經常性存取 (記憶體中) 和靜態極非經常性存取 (需要磁碟存取) 網頁的散發是根據生產伺服器的統計研究。 若要將伺服器的 CPU 核心推送至完整使用率 (已測試頻譜的一端),安裝程式需要夠快的網路和磁碟資源。
SQL Server 資料庫工作負載
TPC-E 基準是資料庫效能分析的熱門基準。 其用來產生進行 PPM 調整最佳化的 OLTP 工作負載。 此工作負載具有大量磁碟 I/O,因此儲存體系統和記憶體大小具有高效能需求。
檔案伺服器工作負載
稱為 FSCT 的 Microsoft 開發基準用來產生 SMB 檔案伺服器工作負載。 其會在伺服器上建立大型檔案集,並使用許多用戶端系統 (實際或虛擬化) 來產生檔案開啟、關閉、讀取和寫入作業。 作業混合是以生產伺服器的統計研究為基礎。 其強調 CPU、磁碟和網路資源。
SPECpower – JAVA 工作負載
SPECpower_ssj2008 是第一個共同評估電源和效能特性的業界標準 SPEC 基準。 這是具有不同 CPU 負載層級的伺服器端 Java 工作負載。 其不需要許多磁碟或網路資源,但具有特定的記憶體頻寬需求。 幾乎所有 CPU 活動都是以使用者模式執行;除了電源管理決策之外,核心模式活動不會對基準的電源和效能特性造成太大的影響。
應用程式伺服器工作負載
SAP-SD 基準用來產生應用程式伺服器工作負載。 使用兩層設定,並搭配相同伺服器主機上的資料庫和應用程式伺服器。 此工作負載也會利用回應時間作為效能計量,而這與其他測試過的工作負載不同。 因此,其用來驗證 PPM 參數對回應性的影響。 不過,其並非代表所有延遲敏感的生產工作負載。
SPECpower 以外的所有基準原本都是針對效能分析所設計,因此是建立在尖峰負載層級執行。 不過,中等到輕量負載層級對真實世界生產伺服器來說更為常見,而且針對 [平衡] 計畫最佳化而言更為有趣。 我們刻意使用各種節流方法 (例如,減少使用中使用者/用戶端的數目),以從 100% 下降到 10% (以 10% 步驟) 的不同負載層級來執行基準。
上述工作負載使用輸送量作為調整的效能計量。 在穩定狀態期間,除非系統超載 (~100% 使用率),否則輸送量不會隨著不同的使用率而變更。 因此,平衡電源計畫相當大程度地偏向電源,以最小化處理器頻率,並最大化使用率。 從 Windows Server 2016 開始,快速回應時間的需求大幅增加。 即使 Microsoft 建議使用者在需要快速回應時間時切換到 [高效能] 電源計畫,但有些使用者在輕量到中等負載層級期間不想失去電源優點。 因此,Windows Server PPM 調整也會包括用於調整的回應時間敏感性工作負載。
GeekBench 3
GeekBench 3 是跨平台處理器基準,可分隔單一核心和多核心效能的分數。 它會模擬一組工作負載,包括整數工作負載 (加密、壓縮、影像處理等)、浮點工作負載 (模型化、分形、影像銳化、影像模糊等)和記憶體工作負載 (串流)。
「回應時間」是其分數計算的主要量值。 在測試過的系統中,Windows Server 2008 預設 [平衡] 電源計畫與 [高效能] 電源計畫相較之下,單一核心測試中會有 ~18% 的迴歸,而多核心測試中會有 ~40% 的迴歸。 Windows Server 2016 會移除這些迴歸。
DiskSpd
Diskspd 是 Microsoft 所開發儲存體基準的命令列工具。 其廣泛用來產生儲存體系統的各種要求,以進行儲存體效能分析。
我們已設定 [容錯移轉叢集],並使用 Diskspd 來產生隨機和循序,以及將 IO 讀取和寫入至 IO 大小不同的本機和遠端儲存體系統。 測試顯示 IO 回應時間對不同電源計畫的處理器頻率極為敏感。 預設 Windows Server 2008 [平衡] 電源計畫的回應時間可能會是特定工作負載下 [高效能] 電源計畫的兩倍。 Windows Server 2016 [平衡] 電源計畫會移除大部分的迴歸。
重要
從執行 Windows Server 2016 的 Intel [Broadwell] 處理器開始,大部分的處理器電源管理決策都是在處理器中做出,而不是 OS 層級,因此可更快速地適應工作負載變更。 OS 所使用的舊版 PPM 參數對實際頻率決策的影響最小,但告知處理器應該偏向電源還是效能,或是限制最小和最大頻率。 因此,只會在 Broadwell 前系統上觀察到此處提及的 PPM 調整結果。
硬體設定
針對每個 Windows 版本,會使用最新的生產伺服器來進行電源計畫分析和最佳化程序。 在某些情況下,已在生產前系統上執行測試,而其發行排程符合下一個 Windows 版本的發行排程。
假設大部分的伺服器都是以 1 到 4 個處理器通訊端進行銷售,而且因為相應增加的伺服器不太可能將能源效率作為主要考量,所以電源計畫最佳化測試主要在 2 個通訊端和 4 個通訊端系統上執行。 選擇每個測試的 RAM、磁碟和網路資源數量,讓每個系統一路執行到其完整容量,同時考慮通常適用於真實世界伺服器環境的成本限制,例如保持合理的設定。
重要
即使系統可以在其尖峰負載執行,但通常會針對較低的負載層級進行最佳化,因為除非能源效率是高優先順序,否則建議一致以尖峰負載層級執行的伺服器使用 [高效能] 電源計畫。
度量
所有測試過的基準都會使用輸送量作為效能計量。 回應時間視為這些工作負載的 SLA 需求 (SAP 除外,其中它是主要計量)。 例如,如果平均或最大回應時間小於特定值,則會將基準執行視為「有效」。
因此,PPM 調整分析也會使用輸送量作為其效能計量。 在最高負載層級 (100% CPU 使用率),目標是因為電源管理最佳化,輸送量不應該減少超過幾個百分比。 但主要考量是在中等和低等負載層級將電源效率最大化 (如下所述)。
以較低頻率執行 CPU 核心可以降低能源耗用量。 不過,較低的頻率通常會減少輸送量並增加回應時間。 針對 [平衡] 電源計畫,會刻意對回應性和電源效率進行取捨。 SAP 工作負載測試以及其他工作負載上的回應時間 SLA 可確定回應時間增加不會超過這些特定工作負載的特定閾值 (例如 5%)。
注意
如果工作負載對回應時間非常敏感,則系統應該切換至 [高效能] 電源計畫,或變更 [平衡] 電源計畫以在執行時大幅增加頻率。
Windows Server 平衡電源計畫預設參數
從執行 Windows Server 2016 的 Intel Broadwell 處理器開始,Windows Server 電源管理會在 Intel 系統上使用 Intel 的硬體控制 P 狀態 (HWP) 作為預設值。 HWP 是合作式硬體和軟體效能控制的新功能。 啟用 HWP 時,CPU 會監視活動和可擴縮性,並選取硬體時間規模的頻率。 不再需要 OS 來監視活動,並定期選取頻率。 切換至 HWP 有數個優點,例如快速回應、更瞭解 TDP 下處理器和其他元件的硬體電源效率。
針對 HWP 系統,Windows 仍然可以選擇設定最小和最大處理器狀態,以提供條件約束。 其也可以使用「能源效能喜好設定 (EPP)」參數來設定電源與效能之間的平衡。 較低的值偏向效能,而較高的值偏向電源。 預設值 50,用來平衡電源與效能。
參數 | Windows Server 2012R2 和之前版本 | Windows Server 2016 和之後版本 |
---|---|---|
已啟用 HWP | N/A | Intel Broadwell+ |
能源效能喜好設定 | N/A | 50 |
針對 Intel 預先 Broadwell 系統或任何沒有 HWP 支援的系統 (例如 AMD 伺服器),Windows 仍然處於完全控制狀態,並且根據 PPM 參數來決定處理器頻率。 Windows Server 2012R2 中的預設 PPM 參數偏向電源太多,可能會大幅影響工作負載效能,尤其是高載工作負載。 Windows Server 2016 RS2 中已變更四個 PPM 參數,讓頻率在中等負載層級更快增加。
參數 | Windows Server 2016 (RS1) 和之前版本 | Windows Server 2016 (RS2) 和之後版本 |
---|---|---|
處理器效能增加閾值 | 90 | 60 |
處理器效能減少閾值 | 80 | 40 |
處理器效能增加時間 | 3 | 1 |
處理器效能增加原則 | 單一 | 理想 |
CPU 使用率型電源管理演算法可能會損害 IO 或網路密集型工作負載的延遲。 等待 IO 完成或網路封包時,邏輯處理器可能會閒置,因此整體 CPU 使用率會較低。 若要解決此問題,Windows Server 2019 會自動偵測 IO 回應性期間,並將頻率下限調至較高層級。 不論系統是否使用 HWP,下列參數都可以調整行為。
參數 | Windows Server 2019 之前 | Windows Server 2019 和之後版本 |
---|---|---|
處理器回應性覆寫啟用閾值 | N/A | 10 |
處理器回應性覆寫停用閾值 | N/A | 5 |
處理器回應性覆寫啟用時間 | N/A | 1 |
處理器回應性覆寫停用時間 | N/A | 3 |
處理器回應性覆寫能源效能喜好設定上限 | N/A | 100 |
處理器回應性覆寫效能下限 | N/A | 100 |
自訂的調整建議
如果您的主要工作負載特性與預設 [平衡] 電源計畫 PPM 調整所使用的五個工作負載明顯不同,則您可以改變一或多個 PPM 參數來實驗,以找出最適合您環境的項目。
因為參數的數目和複雜度,所以這可能是一項具有挑戰性的工作,但如果您要尋找能源耗用量與工作負載效能之間最適合您特定環境的取捨,則可能值得付出努力。
您可以在處理器電源管理調整中找到一組完整的可調整 PPM 參數。 一些要開始使用的最簡單電源參數可能是:
針對已啟用 HWP 的系統:
- 能源效能喜好設定 – 較大的值偏向電源,而非效能
針對非 HWP 系統:
處理器效能增加閾值和處理器效能增加時間 – 較大的值會讓所增加活動的效能回應變慢
處理器效能減少閾值 – 大的值會加快閒置期間的電源回應
處理器效能減少時間 – 較大的值會在閒置期間逐漸減少效能
處理器效能增加原則 –「單一」原則會讓所增加和所持續活動的效能回應變慢;「火箭」原則會快速回應所增加的活動
處理器效能減少原則 –「單一」原則會在較長的閒置期間逐漸減少效能;「火箭」原則會在進入閒置期間時非常快速地讓電源下降
重要
開始任何實驗之前,您應該先瞭解工作負載,這可協助您選擇正確的 PPM 參數,並減少調整工作。
瞭解高階效能和電源需求
如果您的工作負載是「即時」(例如,容易發生故障或其他可見的使用者影響),或具有非常緊密的回應性需求 (例如股票券商),而且如果能源耗用量不是您環境的主要準則,則您可能只要切換至 [高效能] 電源計畫。 否則,您應該瞭解工作負載的回應時間需求,然後調整 PPM 參數,以達到仍符合這些需求的最佳可能電源效率。
瞭解基礎工作負載特性
您應該知道工作負載,並設計用於調整的實驗參數集。 例如,如果需要快速增加 CPU 核心的頻率 (也許您的高載工作負載具有大量閒置期間,但您需要在新交易出現時非常快速的回應性),則處理器效能增加原則可能需要設定為「火箭」(如名稱所示,將 CPU 核心頻率射入其最大值,而不是在一段時間內將其加速)。
如果您的工作負載非常高載,則可能會降低 PPM 檢查間隔,讓 CPU 頻率在高載送達後更快速地開始加速。 如果您的工作負載沒有高執行緒並行,則可以啟用核心駐留,以強制在較小數目的核心上執行工作負載,而這也可能會改善處理器快取命中率。
如果您只想要增加中等使用率層級 (即不是輕量工作負載層級) 的 CPU 頻率,則可以調整處理器效能增加/減少閾值,直到觀察到特定活動層級時才做出反應。
瞭解定期行為
白天和夜間或週末的效能需求可能會不同,或者可能會有不同時間執行的不同工作負載。 在此情況下,一組 PPM 參數可能不適合所有時間週期。 因為可以設計多個自訂電源計畫,所以甚至可以針對不同的時間週期進行微調,並透過指令碼或其他動態系統設定方式切換電源計畫。
同樣地,這也會增加最佳化程序的複雜性,因此這會是問題,即從這類型的調整中將獲得多少價值,而在有大量硬體升級或工作負載變更時可能需要予以重複。
這是 Windows 一開始就提供 [平衡] 電源計畫的原因,因為在許多情況下,針對特定伺服器上的特定工作負載,可能不值得手動調整。