共用方式為


電源和效能微調

在企業和數據中心環境中,能源效率越來越重要,它又為組態選項組合增添了另一組取捨。 管理伺服器時,請務必確保它們盡可能有效率地執行,同時符合其工作負載的效能需求。 Windows Server 已針對優異的能源效率進行最佳化,並且在各種客戶工作負載中僅對效能造成最小的影響。 Windows Server 平衡電源方案的處理器電源管理 (PPM) 微調 說明用於微調多個 Windows Server 版本中預設參數的工作負載,並提供自定義微調的建議。

本節將展開節能取捨,以協助您在伺服器上調整預設電源設定時做出明智的決策。 不過,執行 Windows Server 時,大部分的伺服器硬體和工作負載都不應該需要系統管理員的電源調整。

選擇微調計量

當您調整伺服器以節省能源時,也必須考慮效能。 微調會影響效能和性能,有時會不成比例地造成影響。 針對每個可能的調整,請考慮您的電源預算和效能目標,以判斷取捨是否可接受。

Windows Server 預設參數微調會使用能源效率作為平衡電源和效能的關鍵計量。 能源效率是工作與指定時間內所需平均功率的比率。

能源效率公式

您可以使用此計量來設定實際目標,以尊重電源與效能之間的取捨。 相反地,數據中心內 10% 的節能目標無法擷取對效能的對應影響,反之亦然。

同樣地,如果您調整伺服器以增加 5% 的效能,且這會導致耗電量提高 10%,則您的商務目標可能或可能無法接受總結果。 相較於電源或效能計量,節能計量可讓您做出更明智的決策。

測量系統能耗

您應該先建立基準電源測量,再調整伺服器以提升能源效率。

如果您的伺服器具有必要的支援,您可以使用 Windows Server 2016 中的電源計量和預算功能,使用性能監視器來檢視系統層級的能耗。

判斷伺服器是否支援計量和預算的其中一種方式,就是檢閱 Windows Server 目錄。 如果您的伺服器模型符合 Windows 硬體認證計劃中新的增強式電源管理資格,則保證支援計量和預算功能。

另一個檢查計量支援的方式是手動尋找性能監視器中的計數器。 開啟 [效能監視器],選取 [新增計數器],然後找出 [功率計 ] 計數器群組。

如果具名的電源計量實例出現在標示為 [選取對象的實例] 方塊中,您的平臺支援計量。 顯示功率(以瓦為單位)的 電源 計數器會出現在選取的計數器群組中。 未指定電源數據值的確切來源。 例如,它可以是瞬間的功率汲取,或在某些時間間隔內的平均耗電量。

如果您的伺服器平台不支援計量,您可以使用連接到電源供應器輸入的實體計量裝置來測量系統耗電量或耗電量。

若要建立基準,您應該測量各種系統負載點所需的平均功率,從閑置到 100% (最大輸送量)以產生負載線路。 下圖顯示三個範例組態的載入行:

範例載入行

您可以使用負載線來評估及比較所有負載點組態的效能和能耗。 在此特定範例中,很容易看出最佳設定是什麼。 不過,在某些情況下,一個配置最適合繁重的工作負載,另一個配置最適合輕量工作負載。

您必須徹底瞭解工作負載需求,才能選擇最佳設定。 請勿假設當您找到良好的設定時,一律會保持最佳狀態。 您應該定期測量系統使用率和能耗,並在工作負載、工作負載層級或伺服器硬體變更之後測量。

診斷能源效率問題

PowerCfg.exe 支援命令列選項,可用來分析伺服器的閒置能源效率。 當您使用 /energy 選項執行 PowerCfg.exe 時,工具會執行 60 秒的測試,以偵測潛在的能源效率問題。 此工具會在目前目錄中產生簡單的 HTML 報表。

Important

為確保分析準確無誤,請確定在執行 PowerCfg.exe之前已關閉所有本機應用程式。 

縮短的計時器刻度率、缺乏電源管理支援的驅動程式以及過高的CPU使用率是 powercfg /energy 命令檢測到的一些行為問題。 此工具提供簡單的方法來識別和修正電源管理問題,可能會導致大型數據中心節省大量成本。

如需 PowerCfg.exe的詳細資訊,請參閱 Powercfg 命令行選項

在 Windows Server 中使用電源計劃

Windows Server 2016 有三個內建電源計劃,其設計目的是要符合不同的商務需求。 這些方案提供簡單的方法,讓您自定義伺服器以符合電源或效能目標。 下表描述這些計劃、列出使用每個方案的常見案例,並提供每個方案的一些實作詳細數據。

Plan Description 常見的適用案例 實施亮點
平衡(推薦) 預設設定。 以最低的效能影響來達成良好的能源效率。 通用計算 配合需求調整容量。 節能功能平衡電源和效能。
高效能 以高耗能的代價提高效能。 適用電源和熱限制、營運費用和可靠性考慮。 對處理器效能變更敏感的低延遲應用程式和應用程式程序代碼 處理器一律鎖定在最高效能狀態(包括“turbo”頻率)。 所有核心都已取消停放。 熱輸出可能相當重要。
省電 限制效能以節省能源並降低營運成本。 不建議不進行徹底的測試,以確保效能已足夠。 具有有限電源預算和熱限制的部署 將處理器頻率上限為最大百分比(如果支援),並啟用其他節能功能。

這些電源計劃存在於 Windows 系統中,用於交流電(AC)和直流電(DC)電源系統,但我們假設伺服器總是使用交流電源(AC)。

如需電源計劃和電源原則設定的詳細資訊,請參閱 Powercfg 命令行選項

Note

某些伺服器製造商有自己的電源管理選項,可透過 BIOS 設定取得。 如果作系統無法控制電源管理,則變更 Windows 中的電源計劃不會影響系統電源和效能。

微調處理器電源管理參數

每個電源計劃都代表許多基礎電源管理參數的組合。 內建方案是三個建議設定集合,涵蓋各種工作負載和案例。 不過,我們認識到這些方案不符合每個客戶需求。

下列各節說明調整某些特定處理器電源管理參數的方式,以符合三個內建計劃未解決的目標。 如果您需要瞭解更廣泛的電源參數數位,請參閱 Powercfg 命令行選項

英特爾硬體控制P狀態(HWP)

從執行 WS2016 的 Intel Broadwell 處理器開始,Windows PPM 會使用 Intel 的硬體控制 P 狀態 (HWP)。 HWP 是一項全新的功能,用於協同控制硬體和軟體的性能。 當啟用 HWP 時,CPU 會監控活動和可擴展性,並在硬體時間尺度上選擇頻率。 OS不再需要以固定的時間間隔監控活動並選擇頻率。 切換至 HWP 有數個優點:

  • 快速回應突發負載。 Windows PPM 檢查間隔預設為 30 毫秒,且可縮減至最低 15 毫秒。 不過,HWP 可以每 1 毫秒快速調整頻率。
  • CPU 更瞭解每個 P 狀態的硬體電源效率。 它可以提供更好的處理器頻率選擇,以達到最佳的電源效率。
  • CPU 可以考慮其他硬體使用量,例如記憶體、GPU 等,以在特定 TDP(熱設計電源)下達到最佳電源效率。

Windows 仍然可以設定最小和最大處理器狀態,以限制處理器可執行的頻率範圍。 它也可以設定下列處理器能源效能喜好設定原則 (EPP) 參數,以指示 HWP 偏愛電源或效能。

  • 處理器能源效能喜好設定原則 ,以在電源與效能之間設定平衡。 較低的數值有利於性能,而較高的數值有利於功率。 此值可以介於 0 到 100 之間。 預設值 50,用來平衡電源和效能。

下列命令會將目前電源計劃上的EPP值設定為0,以完全優先效能而非省電:

Powercfg -setacvalueindex scheme_current sub_processor PERFEPP 0
Powercfg -setactive scheme_current

處理器效能狀態下限和上限

處理器在效能狀態(P 狀態)之間變化非常快,以符合供需、在必要時提供效能,並儘可能節省能源。 如果您的伺服器具有特定的高效能或最低耗電量需求,您可以考慮設定 [最低處理器效能狀態 ] 參數或 [ 最大處理器效能狀態 ] 參數。

[最小處理器效能狀態] 和 [最大處理器效能狀態] 參數的值會以最大處理器頻率的百分比表示,範圍為 0 – 100 的值。

如果您的伺服器需要超低延遲、不可變的CPU頻率(例如,用於可重複測試),或最高效能等級,您可能不希望處理器切換為低效能狀態。 針對這類伺服器,您可以使用下列命令,將處理器效能狀態上限設定為 100% :

Powercfg -setacvalueindex scheme_current sub_processor PROCTHROTTLEMIN 100
Powercfg -setactive scheme_current

如果您的伺服器需要較低的能耗,您可能會想要將處理器效能狀態上限設定為最大值的百分比。 例如,您可以使用下列命令,將處理器限制為最大頻率的 75%:

Powercfg -setacvalueindex scheme_current sub_processor PROCTHROTTLEMAX 75
Powercfg -setactive scheme_current

Note

要將處理器性能限制在最大性能的某個百分比,需要處理器的支援。 請檢查處理器檔,以判斷這類支援是否存在,或檢視處理器群組中最大頻率的性能監視器計數器%,以查看是否已套用任何頻率上限。

處理器回應性覆寫

以 CPU 使用率為基礎的電源管理演算法通常會在時間檢查時間範圍內使用平均 CPU 使用率,以判斷頻率是否需要增加或減少。 這可能會造成磁碟 I/O 或網路繁重工作負載的延遲。 在等候磁碟 I/O 完成或網路封包時,邏輯處理器可能會閒置,這會降低整體 CPU 使用率。 因此,電源管理會為此處理器選擇低頻率。 此問題也存在於 HWP 型電源管理上。 處理 IO 完成或網路封包的 DPC 和線程位於關鍵路徑中,不應以低速執行。 若要解決此問題,Windows PPM 會考慮 DPC 的數目。 當過去監視視窗中的 DPC 計數高於特定閾值時,PPM 會進入 IO 回應期間,並將頻率下調至較高層級。 當 DPC 計數在一段時間內足夠低時,頻率下限將會重設。 您可以透過下列參數來調整行為。

Parameter Description 預設值 最小值 最大值
處理器回應性覆寫啟用閾值 效能檢查中超過指定數量的 DPC 時,應啟用處理器回應性覆蓋。 10 0 N/A
處理器回應性覆寫停用閾值 在效能檢查中,若 DPCs(s) 的數量低於此臨界值,則應停用處理器回應性覆寫。 5 0 N/A
處理器回應性覆寫啟用時間 在啟用處理器響應控制超越前,必須達到啟用閾值的連續性性能檢查次數。 1 1 100
處理器反應速度覆寫禁用時間 在停用處理器回應性覆寫之前,必須符合停用閾值的連續效能檢查計數 3 1 100
處理器回應性覆寫效能底板 啟用處理器回應性覆寫時允許的處理器效能下限 100 0 100
處理器反應能力優先於能源效能的偏好上限 啟用處理器回應性覆寫時的最大能源效能喜好設定原則值 100 0 100

例如,如果您的伺服器工作負載對延遲不敏感,且希望降低回應性以優先考量電源效率,您可以增加處理器回應性覆寫啟用閾值和處理器回應性覆寫啟用時間,同時減少處理器回應性覆寫停用閾值和處理器回應性覆寫停用時間。 然後系統將很難進入回應性覆寫狀態。 處理器回應覆寫效能下限的預設值會設定為 100,以確保回應覆寫期間以最大頻率執行。 您也可以降低處理器效能下限,並降低處理器回應性覆寫設定的能源效能偏好上限,以便讓 HWP 調整頻率。 以下是設定目前使用中電源計劃參數的範例命令。

Powercfg -setacvalueindex scheme_current sub_processor RESPENABLETHRESHOLD 100
Powercfg -setacvalueindex scheme_current sub_processor RESPDISABLETHRESHOLD 1
Powercfg -setacvalueindex scheme_current sub_processor RESPENABLETIME 10
Powercfg -setacvalueindex scheme_current sub_processor RESPDISABLETIME 1
Powercfg -setacvalueindex scheme_current sub_processor RESPPERFFLOOR 5
Powercfg -setacvalueindex scheme_current sub_processor RESPEPPCEILING 50
Powercfg -setactive scheme_current

處理器效能提升模式

此參數微調僅適用於非 HWP 系統。

Intel Turbo Boost 和 AMD Turbo CORE 技術是可讓處理器在最有用時達到額外效能的功能(也就是在高系統負載中)。 不過,此功能會增加 CPU 核心耗用量,因此 Windows Server 2016 會根據使用中的電源原則和特定處理器實作來設定 Turbo 技術。

Turbo 會針對所有 Intel 和 AMD 處理器上的高效能電源計劃啟用,且已針對省電電源計劃停用。 針對依賴傳統 P 狀態頻率管理的系統上的平衡的電源計劃,只有在平臺支援 EPB 暫存器時,才會預設啟用 Turbo。

Note

只有 Intel Westmere 和更新版本的處理器才支援 EPB 暫存器。

針對 Intel Nehalem 和 AMD 處理器,Turbo 預設會在 P 狀態型平臺上停用。 不過,如果系統支援 Collaborative Processor Performance Control (CPPC),這是作系統與硬體之間效能通訊的新替代模式(在 ACPI 5.0 中定義),如果 Windows作系統動態要求硬體提供最高的效能等級,則 Turbo 可能會參與其中。

若要啟用或停用 Turbo Boost 功能,處理器效能提升模式參數必須由系統管理員或所選電源計劃的預設參數設定來設定。 處理器效能提升模式有五個允許的值,如表 5 所示。

針對以 P 狀態為基礎的控件,選項為 [已停用]、[已啟用] (每當要求名義效能時,硬體都可以使用 Turbo),以及 [只有實作 EPB 快取器時才可使用 Turbo]。

針對 CPPC 型控件,選項為 [已停用]、[有效啟用] (Windows 會指定提供的 Turbo 增壓確切數量),以及[激進模式](Windows 要求啟用 Turbo 的「最大效能」)。

在 Windows Server 2016 中,提升模式的預設值為 3。

Name 基於 P 狀態的行為 CPPC行為
0 (已停用) Disabled Disabled
1 (已啟用) Enabled 高效啟用
2(激進) Enabled Aggressive
3 (已啟用高效) Efficient 高效啟用
4 (高效且具攻擊性) Efficient Aggressive

下列命令會在目前的電源計劃上啟用處理器效能提升模式(使用 GUID 別名指定原則):

Powercfg -setacvalueindex scheme_current sub_processor PERFBOOSTMODE 1
Powercfg -setactive scheme_current

Important

您必須執行 powercfg -setactive 指令,才能啟用新設定。 您不需要重新啟動伺服器。

若要為目前選取的方案以外的電源計劃設定此值,您可以使用別名,例如SCHEME_MAX(電源儲存器)、SCHEME_MIN(高效能)和SCHEME_BALANCED(平衡)來取代SCHEME_CURRENT。 將 powercfg -setactive 命令中的「目前方案」替換為之前顯示的所需的別名,以啟用該電源計劃。

例如,若要調整 Power Saver 方案中的提升模式,並讓 Power Saver 成為目前的方案,請執行下列命令:

Powercfg -setacvalueindex scheme_max sub_processor PERFBOOSTMODE 1
Powercfg -setactive scheme_max

處理器效能增加和減少臨界值和原則

此參數微調僅適用於非 HWP 系統。

處理器效能狀態增加或減少的速度是由多個參數所控制。 下列四個參數具有最明顯的影響:

  • 處理器效能增加閾值 會定義處理器效能狀態將增加的使用率值。 較大的值會減緩效能狀態的提高速度,以因應活動增加。

  • 處理器效能降低閾值 會定義處理器效能狀態將會降低的使用率值。 較大的值會增加閑置期間效能狀態降低的速率。

  • 處理器效能提升原則和處理器效能降低 原則會決定變更發生時應設定的效能狀態。 「單一」原則表示它會選擇下一個狀態。 “Rocket” 表示最大或最小電源效能狀態。 「理想」嘗試尋找電源與效能之間的平衡。

例如,如果您的伺服器需要超低延遲,但仍希望在閒置期間受益於低功率,您可以在負載增加時加速效能狀態的提升,並在負載減少時減緩效能狀態的降低。 下列命令會將增加原則設定為 「Rocket」,以加快狀態增加,並將減少原則設定為 「Single」。 增加和減少閾值分別設定為10和8。

Powercfg.exe -setacvalueindex scheme_current sub_processor PERFINCPOL 2
Powercfg.exe -setacvalueindex scheme_current sub_processor PERFDECPOL 1
Powercfg.exe -setacvalueindex scheme_current sub_processor PERFINCTHRESHOLD 10
Powercfg.exe -setacvalueindex scheme_current sub_processor PERFDECTHRESHOLD 8
Powercfg.exe /setactive scheme_current

處理器效能核心停車上限和最小核心

核心停泊(Core Parking)是 Windows Server 2008 R2 中引進的功能。 處理器電源管理 (PPM) 引擎和排程器會一起運作,以動態調整可供執行線程的核心數目。 PPM 引擎會針對將排程的線程選擇最少的核心數目。

停用的核心通常不會排程任何線程,而且當它們未處理中斷、DPC 或其他嚴格關聯的工作時,它們會進入極低的能源消耗狀態。 其餘核心負責其餘的工作負載。 核心停車可能會在較低的使用量期間提高能源效率。

對於大多數伺服器,預設的核心停用行為在吞吐量和能源效率之間提供了合理的平衡。 在核心停駐可能不會對一般工作負載顯示太多好處的處理器上,預設可以停用它。

如果您的伺服器有特定的核心停放需求,您可以在 Windows Server 2016 中使用 處理器效能核心停放 Maximum Cores 參數或 處理器效能核心停放 Minimum Cores 參數控制可供停放的核心數目。

核心停車並非總是最適合的案例是,當 NUMA 節點中有一或多個作用中線程與非簡單 CPU 子集親和化時(也就是超過 1 個 CPU,但小於節點上的整個 CPU 集合)。 當核心停車演算法在選擇取消停駐的核心時(假設工作負載強度增加),可能不會總是選擇作用中的關聯子集內的核心來取消停駐,因此最終可能會取消停駐那些實際上不會被使用的核心。

這些參數的值是範圍 0 – 100 中的百分比。 Processor Performance Core Parking Maximum Cores 參數控制任何時間可解除鎖定(可供執行線程)的核心百分比上限,而 Processor Performance Core Parking Minimum Cores 參數控制可以解除鎖定的核心百分比下限。 若要停用核心停駐功能,請使用下列命令,將 Processor Performance Core Parking Minimum Cores 參數設定為 100%:

Powercfg -setacvalueindex scheme_current sub_processor CPMINCORES 100
Powercfg -setactive scheme_current

若要將可計算的核心數目減少到最大計數的 50%,請將 Processor Performance Core Parking Maximum Cores 參數設定為 50,如下所示:

Powercfg -setacvalueindex scheme_current sub_processor CPMAXCORES 50
Powercfg -setactive scheme_current

處理器性能核心停駐工具分配

效用分配是 Windows Server 2016 中的一種演算法優化,設計目的是為了改善某些工作負載的能源效率。 它追蹤不可移動的CPU活動(例如DPC、中斷或嚴格親和性的執行緒),並基於假設任何可移動的工作可以平均分散到所有未停用的核心上,來預測每個處理器的未來工作。

某些處理器的平衡電源計劃預設會啟用公用程式分配。 其可藉由降低處於合理穩定狀態之工作負載的要求 CPU 頻率來降低處理器耗電量。 不過,公用程式散發不一定是受高活動高載或工作負載快速隨機轉移處理器之程式的良好演演算法選擇。

針對這類工作負載,我們建議您使用下列命令來停用 Utility Distribution。

Powercfg -setacvalueindex scheme_current sub_processor DISTRIBUTEUTIL 0
Powercfg -setactive scheme_current

其他參考資料