0

I just learned some NUMA related knowledge and I want to know:

  1. Is NUMA a bad thing for SQL Server? I ask because this Microsoft employee said that:

Basically fewer nodes is better, but there's a limit to how many cores and how much RAM you can put on a single NUMA node.

It seems that we use NUMA on SQL Server servers solely because we want huge RAM and more processors, and the hardware vendor created these NUMA nodes for us just because the server is more performant with NUMA architecture. Is this true?

  1. Since I don't have a computer with multiple hardware CPU, I can't test NUMA architecture. Is possible to test it on Azure or AWS? What's the approximate cost of using it for 24 hours?

1 Answer 1

4

Is NUMA a bad thing for SQL Server?

Not inherently, per se. SQL Server makes certain configuration decisions and settings depending on the number of NUMA nodes. In odd setups it can add overhead. In extremely large scenarios, such as Superdome setups, it requires more advanced configurations of various parts and pieces (such as Windows, applications, SQL, etc., though will "work" out of the box with no tuning/config changes).

It seems that we use NUMA on SQL Server servers solely because we want huge RAM and more processors, and the hardware vendor created these NUMA nodes for us just because the server is more performant with NUMA architecture. Is this true?

Eh. Everyone kind of has their take on this. NUMA doesn't scale and it really wasn't mean to scale to large quantities. The basic high level is NUMA becomes the community in which cpus need to contend for resources on the shared bus. Once you hit too many cpus, it becomes a bottleneck, so make a new NUMA node... but then you have interconnects between the NUMA nodes and there's a cost to go between them. Keep scaling that up and up and eventually it's a lot of overhead. This is all on the hardware level. Additionally, with densely packed cores scenarios, there are even newer options such as sub-NUMA clustering.

It would be too much contention to have the SMP version of 20, 40, 80, 488 cores all on the same bus. Nothing would get done on cores waiting to get access. It's really there to more densely pack servers with cores and kicking the overhead issue down the road (once you hit high core counts and density it rears its head). It's like in computer science where the answer is always 1 more layer of indirection fixes X current problem.

Since I don't have a computer with multiple hardware CPU, I can't test NUMA architecture. Is possible to test it on Azure or AWS? What's the approximate cost of using it for 24 hours?

Could you? Yes. Cost - you'll have to look at their websites.

It's also possible to fake NUMA by using software such as Hyper-V or advanced Windows configurations such as using BCDEdit. Since it won't have the exact same performance it isn't a 1-1 but it's a good way to simulate without having the hardware. enter image description here

1
  • Thank you for the answer! Really helps a lot! Sep 7, 2022 at 15:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.