Sql-Server

為 SQLserver 2016 及更高版本設置 MAXDOP

  • September 13, 2019

我正在瀏覽 MS 文件 reg:將 MAXDOP 啟動 SQL2016 設置為預設啟用自動軟 NUMA,並對如何更改目前 SQ2014 和 SQL2012 版本感到困惑:

MSDN 連結——https ://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-max-degree-of-parallelism-server-configuration-option?view = sql- server-2017#指南

目前 SQL2012/2014 設置:

Logically Processors =80
Numa Node=4
Physical RAM= 512GB
MAXDOP=8 and CTOP=5
HyperThreading enabled ='True'

那麼在將它們遷移到 SQL2016 及更高版本之後有什麼變化呢?目前設置的 MAXDOP 是否不再存在並需要調整?如果是,MS 建議什麼?

請分享您的設置經驗。

啟用超執行緒後,您目前有 4 個硬 NUMA 節點,每個節點有 10 個物理核心和 20 個邏輯核心。在 SQL Server 2012 和 2014 上,您將擁有 4 個匹配的軟 NUMA 節點,每個節點有 20 個邏輯核心。

升級到 SQL Server 2016 或更高版本後,自動軟 NUMA 將自動啟動。現在每個硬 NUMA 節點有 2 個軟 NUMA 節點,總共 8 個。軟 NUMA 節點將在每個硬 NUMA 的偶數和奇數 CPU 上進行條帶化節點。例如,軟 NUMA 節點 0 可能包含調度程序 0、2、4、6、8、10、12、14、16、18,而軟 NUMA 節點 1 可能包含調度程序 1、3、5、7、9、11、13 , 15, 17, 19。

您引用的部落格文章很難理解,但我相信您應該屬於“具有多個 NUMA 節點的伺服器”類別(您有 4 個)和“每個 NUMA 節點超過 16 個邏輯處理器”類別(您有20)。結果建議是“將 MAXDOP 保持在每個 NUMA 節點的邏輯處理器數量的一半,MAX 值為 16”,因此 Microsoft 建議您將 MAXDOP 更改為 10。

這與我在大型伺服器上的經驗不符。除非您遇到某種問題,否則我會將 MAXDOP 設置為 8。IMO 在您的場景中將其從 8 更改為 10 沒有意義,並且只是引入了新的更改而沒有明顯的好處。我在部落格上寫了我如何不同意此處發布的指南。

引用自:https://dba.stackexchange.com/questions/248751