This is most common with VMs

But it can happen on physical servers where Affinity Masking or another tool capable of disabling CPU cores is in use.

Balancing act

If you’re on a VM, someone may have ‘accidentally’ set up a bunch of single core CPUs or, dual 3 core CPUs because you requested a six core box.

To see how your VM is set up and how NUMA is configured, read this post from Microsoft. There’s a handy DMV query at the bottom, too.

While many single core CPUs is typically worse, odd numbers of CPUs can also create performance issues, especially for plans going parallel.

See here for some information about how SQL Server places parallel queries.

To fix it, change your VM setup to use an even number of cores per socket.

If you’re on a physical server, you have a lot more to consider, because there may be many more bad decisions to unravel. You may be instance-stacking, running multiple active nodes in a FCI, etc.

“But I want to use an odd number of cores!”

No problem – check out Frank Denneman’s excellent post series on virtualization & NUMA nodes.