patternsqlMajor
Why is SQL Server setup recommending MAXDOP 8 here?
Viewed 0 times
whyheresqlrecommendingsetupservermaxdop
Problem
I'm running SQL Server 2022 RC1 setup on an AWS i3.16xlarge with 2 sockets, 2 NUMA nodes, 32 logical processors per node, 64 logical processors altogether.
Setup is recommending MAXDOP 8:
But if you click on that link for configuring MAXDOP, the recommendations say:
Based on that KB article, MAXDOP should be 16, not 8. Sure, technically 8 is less than 16 - but so is 2, or 4, or 15. Where's the 8 coming from?
After SQL Server installation finishes and the service starts up, the log shows that SQL Server is automatically implementing Soft-NUMA with 4 nodes, each with 16 logical processors:
So again, that indicates that MAXDOP should be 16.
Is this a bug, or did I miss something obvious? Is there another unwritten rule somewhere that setup will stop at MAXDOP 8?
Setup is recommending MAXDOP 8:
But if you click on that link for configuring MAXDOP, the recommendations say:
Based on that KB article, MAXDOP should be 16, not 8. Sure, technically 8 is less than 16 - but so is 2, or 4, or 15. Where's the 8 coming from?
After SQL Server installation finishes and the service starts up, the log shows that SQL Server is automatically implementing Soft-NUMA with 4 nodes, each with 16 logical processors:
So again, that indicates that MAXDOP should be 16.
Is this a bug, or did I miss something obvious? Is there another unwritten rule somewhere that setup will stop at MAXDOP 8?
Solution
Setup is recommending MAXDOP 8
Setup calculates the MAXDop as follows:
In your specific case:
Soft NUMA will be used, 64 LPs/4 (Soft) = 16. 16 > 15, take 16 / 2 = 8.
Whether people agree with the extra /2 or not, given >15 LPs/NUMA is a discussion point. Regardless, that's what currently exists and does fit within the MSDN TechNet BOL Docs Learn article recommendations.
Setup calculates the MAXDop as follows:
Step 1: Calculate Hardware NUMA and Soft NUMA
Step 2: Decide whether Hardware or Soft NUMA will be used
Step 3: Divide the total logical processors by the NUMA used
Step 4: If > 15 LPs/NUMA, MAXDop = (LPs/NUMA)/2, otherwise MAXDop = LPs/NUMAIn your specific case:
64 LPs total
HW NUMA = 2
Soft NUMA = 4Soft NUMA will be used, 64 LPs/4 (Soft) = 16. 16 > 15, take 16 / 2 = 8.
Whether people agree with the extra /2 or not, given >15 LPs/NUMA is a discussion point. Regardless, that's what currently exists and does fit within the MSDN TechNet BOL Docs Learn article recommendations.
Code Snippets
Step 1: Calculate Hardware NUMA and Soft NUMA
Step 2: Decide whether Hardware or Soft NUMA will be used
Step 3: Divide the total logical processors by the NUMA used
Step 4: If > 15 LPs/NUMA, MAXDop = (LPs/NUMA)/2, otherwise MAXDop = LPs/NUMA64 LPs total
HW NUMA = 2
Soft NUMA = 4Context
StackExchange Database Administrators Q#319145, answer score: 21
Revisions (0)
No revisions yet.