設定 MAXDOP 以獲得最佳效能 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定 MAXDOP 以獲得最佳效能

平行處理的最大程度 (MAXDOP) 是在多個 CPUs伺服器組態選項。它控制在平行計畫執行中執行單一陳述式的處理器數量。預設值為 0,可讓 SQL Server 使用所有可用的處理器。這可能會影響效能,而且不適用於大多數使用案例。

設定 SQL Server 的 MAXDOP 值時,請使用下列準則。

NUMA 節點 邏輯處理器 MAXDOP 值
單一 ≤ 8 4、2 或核心數量 (適用於一個或兩個核心)
單一 > 8 8、4 或 2
多個 ≤ 16 8、4 或 2
多個 > 16 16、8、4 或 2
注意

將 MAXDOP 設定為 2、4 或 8 通常可在大多數使用案例中提供最佳結果。我們建議您測試工作負載,並監控任何平行處理相關的等待類型,例如 CXPACKET

您可以使用下列查詢來收集 SQL Server 2016 和更新版本的目前 NUMA 組態:

select @@SERVERNAME, SERVERPROPERTY('ComputerNamePhysicalNetBIOS'), cpu_count, hyperthread_ratio, softnuma_configuration, softnuma_configuration_desc, socket_count, numa_node_count from sys.dm_os_sys_info

其中:

  • cpu_count 是指系統中邏輯 CPUs 的數量。

  • hyperthread_ratio 是某個實體處理器公開的核心數量比例。

  • softnuma_configuration012

    • 0 (OFF):預設

    • 1 (automated):soft-NUMA

    • 2 (manual):soft-NUMA

  • softnuma_configuration_descOFFONMANUAL

    • OFF 表示 soft-NUMA 功能已關閉。

    • ON 表示 SQL Server 會自動決定 NUMA 節點大小。

    • MANUAL 表示 Soft-NUMA 已手動設定。

  • socket_count 是處理器通訊端的數量。

  • numa_node_count 是系統中可用的 NUMA 節點數量。

若要檢查目前的 MAXDOP 值,請使用:

$ sp_configure 'max_degree_of_parallelism'

如需 MAXDOP 的詳細資訊,請參閱 Microsoft SQL Server 文件