Setting correct MAX DOP for a SQL instance with 16 sockets and 32 Virtual processors (SQL Server 2008 R2)

mo boy 396 Reputation points
2022-05-26T01:27:56.067+00:00

Dear Experts,

On this SQL instance, the MaxDOP is set to 8 and cost threshold for parallelism is 200.
The server has 16 sockets and 32 Virtual processors, it is a virtual server running on its own dedicated host.

Version is SQL Server 2008 R2 (Standard) running on Windows Server 2012 Standard.

Min memory is 64 GB and Max memory set on this instance is 67 GB but available on server is 128 GB. As per MS, there is a memory limit on this edition (capped at 64 GB). ms143685(v=sql.105)

On checking wait stats, the highest wait is on CXPacket and second is on resource_semaphore.

Could you please advise the correct MAX DOP setting and cost threshold for parallelism for this server, is there any?

Thanks

SQL Server | Other
0 comments No comments
{count} votes

Answer accepted by question author
  1. CathyJi-MSFT 22,401 Reputation points Microsoft External Staff
    2022-05-26T07:50:02.997+00:00

    Hi @mo boy ,

    Quote from MS document Configure the max degree of parallelism Server Configuration Option;
    205771-screenshot-2022-05-26-154826.jpg


    If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".

    1 person found this answer helpful.

2 additional answers

Sort by: Most helpful
  1. Bjoern Peters 8,921 Reputation points
    2022-05-26T12:49:15.407+00:00

    I want to add some considerations...

    you wrote that you are running a SQL Server 2008 R2 STANDARD Edition

    SQL Server 2008 R2 Standard Edition also has a license limit of four processor sockets.

    https://www.sqlskills.com/blogs/glenn/upgrading-sql-server-day-6/

    So your SQL Server will never use those amount of cores... as it is limited to 4 sockets (in your configuration => only 8 cores)

    I would expect that your MaxDoP has to be set to 2
    Multiple NUMA nodes - less than 8 per NUMA node => MaxDoP = Cores per NUMA node = 2


  2. Tom Phillips 17,781 Reputation points
    2022-05-26T13:02:02.35+00:00

    There are only certain reasons to change MAX DOP. Do not change MAX DOP just because of "CXPacket" wait state.

    "CXPacket" is not a wait state you need to worry about. That just means parallel threads are waiting on other threads to complete. This is completely normal and expected behavior.

    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.