電源與效能調整
在企業和資料中心環境中,能源效率日益重要,並可在設定選項組合中增加額外平衡集合。 管理伺服器時,請務必確保這些伺服器可有效率執行,同時符合其工作負載的效能需求。 Windows Server 已最佳化以獲得絕佳能源效率,並僅對各種客戶工作負載產生最小效能影響。 Windows Server 平衡電源計畫的處理器電源管理 (PPM) 調整說明用於調整多個 Windows Server 版本中預設參數的工作負載,並提供自訂調整的建議。
本節進一步說明能源效率權衡取捨,協助您在伺服器上調整預設電源設定時做出明智決策。 不過,執行 Windows Server 時,大部分的伺服器硬體和工作負載應不需要管理員的電源調整。
選擇調整計量
當您調整伺服器以節省能源時,必須也考量效能。 調整會影響效能和電源,有時影響程度不成比例。 針對每個可能的調整,請考量您的電源預算和效能目標,以判斷權衡取捨是否可接受。
Windows Server 預設參數調整會使用能源效率作為平衡電源和效能的關鍵計量。 能源效率是工作與指定時間內所需平均電源的比率。
您可以使用此計量來設定實際目標,以遵循能源和效能之間的權衡取捨。 相反地,若目標為節省資料中心的 10% 能源,則無法完整說明效能的對應影響,反之亦然。
同樣地,如果您調整伺服器以增加 5% 的效能,且這會導致能源消耗提高 10%,則對您的業務目標而言,總結果可能可接受,也可能無法接受。 與單獨的電源或效能計量相比,能源效率計量可讓您做出更明智的決策。
測量系統能源消耗
您應先建立基準能源測量,再調整伺服器以提升能源效率。
如果您的伺服器有必要支援,則可以使用 Windows Server 2016 的電源計量和預算功能,以透過效能監視器檢視系統層級的能源消耗。
判斷伺服器是否支援計量和預算的其中一種方式是,檢閱 Windows Server Catalog。 如果伺服器模型符合 Windows 硬體認證計畫中的新增強式電源管理資格,則保證支援計量和預算功能。
檢查計量支援的另一種方式是,手動尋找效能監視器中的計數器。 開啟 [效能監視器],選取 [新增計數器],然後找出 [電源計量] 計數器群組。
如果電源計量的具名執行個體顯示在標示為 [所選物件的執行個體] 的方塊中,則您的平台支援計量。 [電源] 計數器 (以瓦為單位顯示電源) 會顯示在所選計數器群組中。 未指定電源資料值的確切衍生。 例如,這可以是瞬間的電源消耗或在某個時間間隔內的平均電源銷後。
如果伺服器平台部支援計量,則您可以使用連接至電源供應器輸入的實體計量裝置來測量系統電源消耗或能源消耗。
若要建立基準,您應從閒置到 100% (最大輸送量) 測量各種系統負載點所需的平均電源,以產生負載線。 下圖顯示三個範例設定的負載線:
您可以使用負載線來評估和比較所有負載點的設定效能和能源消耗。 在此特定範例中,您可輕鬆查看最佳的設定內容。 不過,有可能易出現下列情況:一個設定最適合繁重工作負載,另一個設定最適合輕量工作負載。
您必須徹底了解您的工作負載需求以選擇最佳設定。 請不要假設在您找到良好設定時,該設定一律會保持最佳狀態。 您應定期測量系統使用率和能源消耗,並也在變更工作負載、工作負載層級或伺服器硬體之後進行測量。
診斷能源效率問題
PowerCfg.exe 支援命令列選項,您可用來分析伺服器的閒置能源效率。 當您使用 /energy 選項執行 PowerCfg.exe 時,此工具會執行 60 秒的測試以偵測潛在能源效率問題。 此工具會在目前目錄中產生簡易 HTML 報告。
重要
為了確保精確分析,請先確定已關閉所有本機應用程式,再執行 PowerCfg.exe。
powercfg /energy 命令偵測到的一些行為問題包含縮短計時器刻度速率、缺乏電源管理支援的驅動程式和過高 CPU 使用率。 此工具提供簡單方式以識別和修正電源管理問題,以便可節省大型資料中心的大量成本。
如需 PowerCfg.exe 的詳細資訊,請參閱 Powercfg 命令列選項。
使用 Windows Server 中的電源計畫
Windows Server 2016 有三個內建電源計畫,旨在滿足不同的業務需求組合。 這些計畫提供簡單方式,讓您可自訂伺服器以符合電源或效能目標。 下表說明計畫、列出使用每個計畫的常見案例,並提供每個計劃的某些實作詳細資料。
計劃 | 說明 | 常見適用的案例 | 實作重點提示 |
---|---|---|---|
平衡 (建議) | 預設設定。 目標為實現良好能源效率且將效能影響降至最低。 | 一般計算 | 產能與需求相符。 節能功能可平衡電源和效能。 |
高效能 | 以高能源消耗成本提高效能。 電源和散熱限制、營運費用和可靠性考量均適用。 | 對處理器效能變更敏感的低延遲應用程式和應用程式程式碼 | 處理器一律鎖定為最高效能狀態 (包含 "Turbo" 頻率)。 所有核心已解除暫止。 散熱輸出可能相當重要。 |
省電 | 限制效能以節省能源並降低營運成本。 若未完整測試以確保效能足夠,則不建議使用。 | 限制電源預算和散熱條件約束的部署 | 將處理器頻率限制為最大百分比 (若支援),並啟用其他節能功能。 |
這些電源計畫存在於 Windows 中,用於交流電 (AC) 和直流電 (DC) 電源系統,但我們假設伺服器一律使用 AC 電源。
如需電源計畫和電源原則設定的詳細資訊,請參閱 Powercfg 命令列選項。
注意
某些伺服器製造商有自己的電源管理選項,可透過 BIOS 設定取得。 如果作業系統無法控制電源管理,則變更 Windows 中的電源計畫將不會影響系統電源和效能。
調整處理器電源管理參數
每個電源計畫都代表多個基礎電源管理參數的組合。 內建計畫是三個建議設定的集合,涵蓋各種工作負載和案例。 不過,我們認知這些計畫將無法滿足每個客戶的需求。
下列各節說明調整某些特定處理器電源管理參數的方式,以符合三個內建計畫未滿足的目標。 如果您需要了解更廣泛的電源參數陣列,請參閱 Powercfg 命令列選項。
Intel 硬體控制 P-states (HWP)
從執行 WS2016 的 Intel Broadwell 處理器開始,Windows PPM 會使用 Intel 的硬體控制 P-states (HWP)。 HWP 是合作式硬體和軟體效能控制的新功能。 啟用 HWP 時,CPU 會監視活動和可擴縮性,並選取硬體時間規模的頻率。 不再需要 OS 來監視活動,並定期選取頻率。 切換至 HWP 有數個優點:
- 快速因應突發的工作負載。 Windows PPM 檢查間隔預設為 30 毫秒,且最小可縮減為 15 毫秒。 不過,HWP 可以調整頻率,最快可達每 1 毫秒。
- CPU 可讓您更了解每個 P-state 的硬體電源效率。 如此可做出更佳的處理器頻率選擇以達成最佳電源效率。
- CPU 可以考量其他硬體使用量 (例如記憶體、GPU 等),以在特定 TDP (散熱設計功耗) 下達成最佳電源效率。
Windows 仍可以設定最小和最大處理器狀態以限制處理器可執行的頻率範圍。 這也可以設定下列處理器能源效能喜好設定原則 (EPP) 參數,以指示 HWP 應偏向電源或效能。
- 處理器能源效能喜好設定原則可用於設定電源和效能之間的平衡。 較低的值偏向效能,而較高的值偏向電源。 此值可介於 0 到 100 之間。 預設值 50,用來平衡電源與效能。
下列命令會將目前電源計畫上的 EPP 值減少至 0,以完全偏向效能而不是電源:
Powercfg -setacvalueindex scheme_current sub_processor PERFEPP 0
Powercfg -setactive scheme_current
最小和最大處理器效能狀態
處理器在效能狀態 (P-states) 之間的變更非常快速以符合供應與需求,在必要時提供效能並盡可能節省能源。 如果伺服器有特定高效能或最低電源需求,您可考量設定最低處理器效能狀態參數或最高處理器效能狀態參數。
最低處理器效能狀態和最高處理器效能狀態參數的值會以最高處理器頻率的百分比表示,值範圍為 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
注意
將處理器效能限制為最大百分比需要處理器支援。 請檢查處理器文件以判斷是否有此類支援,或檢視處理器群組中的效能監視計數器的最高頻率百分比以查看是否已套用任何頻率限制。
處理器回應性覆寫
CPU 使用率型電源管理演算法通常會使用時間檢查時段內的平均 CPU 使用率來確定頻率是否需要增加或減少。 這可能會造成磁碟 I/O 或網路繁重工作負載的延遲。 等待磁碟 I/O 完成或網路封包時,邏輯處理器可能會閒置,因此整體 CPU 使用率會較低。 因此,電源管理將針對此處理器選擇低頻率。 此問題也存在於以 HWP 為基礎的電源管理。 處理 IO 完成或網路封包的 DPC 和執行緒位於關鍵路徑,且不應以低速執行。 若要解決此問題,Windows PPM 會考慮 DPC 的數目。 當 DPC 計數高於過去監視時間範圍內的特定閾值時,PPM 將進入 IO 回應性期間,並將頻率下限提升至較高層級。 當 DPC 計數在一段時間內足夠低時,系統將重設頻率下限。 您可透過下列參數來調整行為。
參數 | 說明 | 預設值 | 最小值 | 最大值 |
---|---|---|---|---|
處理器回應性覆寫啟用閾值 | 效能檢查內的 DPC 計數,高於此計數應啟用的處理器回應性覆寫 | 10 | 0 | N/A |
處理器回應性覆寫停用閾值 | 效能檢查內的 DPC 計數,低於此計數應停用的處理器回應性覆寫 | 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-state 為基礎頻率管理系統上的平衡電源計畫,只有在平台支援 EPB 暫存器時才能預設啟用 Turbo。
注意
僅 Intel Westmere 和更新版本的處理器支援 EPB 暫存器。
針對 Intel Nehalem 和 AMD 處理器,Turbo 依預設在以 P-state為基礎的平台上停用。 不過,如果系統支援共同工作處理器效能控制 (Collaborative Processor Performance Control, CPPC),這是作業系統與硬體之間的效能通訊新替代模式 (在 ACPI 5.0中定義),如果 Windows 作業系統動態要求硬體提供最高的效能層級,則可能會啟用 Turbo。
若要啟用或停用 Turbo Boost 功能,處理器效能提升模式參數必須由系統管理員或透過預設參數設定針對所選電源計畫進行設定。 處理器效能提升模式有五個允許的值,如表 5 所示。
針對以 P-state 為基礎的控制項,選項為「已停用 (Disabled)」、「已啟用 (Enabled)」(每當要求些微效能時,硬體都可使用 Turbo),以及「有效率 (Efficient)」(只有實作 EPB 暫存器時才可使用 Turbo)。
針對以 CPPC 為基礎的控制項,選項為「已停用 (Disabled)」、「已啟用有效率 (Efficient Enabled)」(Windows 會指定要提供的 Turbo 確切數量),以及「主動 (Aggressive)」(Windows 要求啟用 Turbo 的「最大效能」)。
在 Windows Server 2016 中,提升模式的預設值為 3。
名稱 | 以 P-state 為基礎的行為 | CPPC 行為 |
---|---|---|
0 (已停用) | 已停用 | 已停用 |
1 (已啟用) | 已啟用 | 已啟用有效率 |
2 (主動) | 已啟用 | 主動 |
3 (已啟用有效率) | 高效率 | 已啟用有效率 |
4 (有效率主動) | 高效率 | 主動 |
下列命令會在目前電源計畫上啟用處理器效能提升模式 (使用 GUID 別名指定原則):
Powercfg -setacvalueindex scheme_current sub_processor PERFBOOSTMODE 1
Powercfg -setactive scheme_current
重要
您必須執行 powercfg -setactive 命令,才能啟用新的設定。 您不需要重新開機伺服器。
若要為目前選取計畫以外的電源計畫設定此值,您可以使用 SCHEME_MAX (省電)、SCHEME_MIN (高效能) 和 SCHEME_BALANCED (平衡) 等別名以取代 SCHEME_CURRENT。 將 powercfg -setactive 命令中的「scheme current」取代為所需的別名,以啟用該電源計畫。
例如,若要調整省電計畫中的提升模式並讓該「省電」成為目前計畫,請執行下列命令:
Powercfg -setacvalueindex scheme_max sub_processor PERFBOOSTMODE 1
Powercfg -setactive scheme_max
處理器效能的閾值和原則增加和減少
此參數調整僅適用於非 HWP 系統。
處理器效能狀態增加或減少的速度是透過多個參數所控制。 下列四個參數有最明顯的影響:
處理器效能增加閾值定義使用率值,高於此值將增加處理器的效能狀態。 較大的值會減緩效能狀態的增加速度,以因應活動增加。
處理器效能減少閾值定義使用率值,低於此值將減少處理器的效能狀態。 較大的值會增加閒置期間效能狀態的減少速度。
處理器效能增加原則和處理器效能減少原則決定在變更發生時應設定的效能狀態。 「單一 (Single)」原則表示其會選擇下一個狀態。 「火箭 (Rocket)」表示最大或最小電源效能狀態。 「理想 (Ideal)」嘗試尋找電源與效能之間的平衡。
例如,如果伺服器需要超低延遲,同時仍想要在閒置期間受益於低電源,您可以在負載增加時加快效能狀態的增加,並在負載降低時減緩效能狀態的減少。 下列命令會將增加原則設定為「火箭」以加快狀態增加,並將減少原則設為「單一」。 增加和減少閾值會分別設定為 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
處理器效能核心暫止最大和最小核心
核心暫止是 Windows Server 2008 R2 引進的功能。 處理器電源管理 (PPM) 引擎和排程器會同時運作,以動態調整可供執行執行緒的核心數目。 PPM 引擎會針對將排程的執行緒選擇最小的核心數目。
暫止的核心通常不會排程任何執行緒,而且當未處理插斷、DPC 或其他嚴格同質化工作時,便會進入非常低的電源狀態。 其餘核心則負責剩餘的工作負載。 核心暫止可能會在較低的使用量期間增加能源效率。
針對大部分伺服器,預設核心暫止行為提供合理的輸送量和能源效率平衡。 在核心暫止可能對一般工作負載沒有太多優點的處理器上,預設可以加以停用。
如果伺服器有特定的核心暫止需求,您可以使用 Windows Server 2016 中的處理器效能核心暫止最大核心參數或處理器效能核心暫止最小核心參數來控制可供暫止的核心數目。
核心暫止並非總是最佳的案例是,當 NUMA 節點中有一或多個與重要 CPU 子集同質化的使用中執行緒時 (意即大於 1 個 CUP,但小於節點上的整個 CPU 集合)。 當核心暫止演算法挑選要解除暫止的核心時 (假設工作負載強度增加時),可能不會總是選擇使用中同質化子集 (或子集) 中要解除暫止的核心,因此最終可能會解除暫止實際上不會使用的核心。
這些參數的值為範圍 0 – 100 的百分比。 處理器效能核心暫止最大核心參數會控制隨時可解除暫止的核心最大百分比 (可供執行執行緒),而處理器效能核心暫止最小核心參數會控制可解除暫止的核心最小百分比。 若要關閉核心暫止,請使用下列命令,將處理器效能核心暫止最小核心參數設定為 100%:
Powercfg -setacvalueindex scheme_current sub_processor CPMINCORES 100
Powercfg -setactive scheme_current
若要將可排程的核心數目減少至最大計數的 50%,請將處理器效能核心暫止最大核心參數設定為 50,如下所示:
Powercfg -setacvalueindex scheme_current sub_processor CPMAXCORES 50
Powercfg -setactive scheme_current
處理器效能核心暫止公用程式散發
公用程式散發是 Windows Server 2016 中的演算法最佳化,旨在改善某些工作負載的電源效率。 其會追蹤無法移動的 CPU 活動 (意即 DPC、插斷或嚴格同質化執行緒),並根據任何可移動動作皆可散發到所有解除暫止核心的假設,預設每個處理器的未來工作。
針對某些處理器的平衡電源計畫,預設會啟用公用程式散發。 其可透過降低處於合理穩定狀態的工作負載所要求 CUP 頻率以減少處理器電源消耗。 不過,對於受高活動高載影響的工作負載或工作負載快速隨機在處理器之間轉換的程式,公用程式散發並不一定是良好的運算法選擇。
針對此類工作負載,建議您使用下列命令來停用公用程式散發:
Powercfg -setacvalueindex scheme_current sub_processor DISTRIBUTEUTIL 0
Powercfg -setactive scheme_current