How many cores per numa node on a Xeon E5-2430?

Hey guys,

 I have a server with two processors.  They are listed as:

Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz (6 Cores)

I have to size a virtual SQL server on esxi 5.5 and need to match the cpus to the number of cores per NUMA node.

My question is, how many cores would equal one numa node in the above configuration?  I would prefer not to give a virtual server all 12 cores if one numa node is 6 or less.

The servers have 192 GB of memory in them if that matters in the calculation.

Joel ParmerProgram CoordinatorAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Each CPU is a NUMA node since the memory controller is on the process or die. Your CPUs have 6 cores each so there are 6 cores per NUMA node, however if you have hyper-threading turned on you have 12 virtual cores per CPU and therefore 12 virtual cores per NUMA node.

Running this under VMware though may well compromise performance severely, since VMware time-slices a VM's use of a core so that other VMs can run on it too SQL will not have dedicated access to any given core. If you specify 12 cores for the VM SQL will only be given access when 12 cores are available and not in use by other VMs.

You should really ask this in the SQL topic area, you may be able to add it since you only have two selected so far. What document are you following for your design?

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Joel ParmerProgram CoordinatorAuthor Commented:

We were having huge performance issues with CPU on a virtual SQL server that had 2 cores assigned to it. One of the other engineers here did some research on it while I was out and found a known issue with virtualized sql and NUMA.  He went and gave the virtual server all 12 cores of the host so that the sql cpu matched the numa node.

Needless to say this isn't the best solution for the reasons you stated above, so I am trying to resolve it properly.

I am pretty sure that hyperthreading is turned on for the host hardware.  Is there an issue with esxi if you turn hyperthreading off on the host?  WIll that require a reinstall of the esxi OS?
You are referring to this from the SQL on VMware best practices?

1. For small SQL Server virtual machines, allocate virtual machine CPUs equal to or less than the number of cores in each physical NUMA node.
2. For wide SQL Server virtual machines, size virtual machine CPUs to align with physical NUMA boundaries. Configure vNUMA to enable SQL Server NUMA optimization to take advantage of managing memory locality.


1 means give it less cores than one CPU has to offer so that it only uses one CPU for the SQL VM. NUMA doesn't get involved since the SQL runs on one CPU plus RAM that is local to that CPU - best option if you want to give SQL 4 cores for example.

2. means give it (in your case) an even number of cores greater than a single processor but less than the total and let vNUMA tell SQL about where the physical CPUs are. Best option if you want to give it 8 cores assuming hyper-threading is off, VMware will give SQL 4 cores on each processor and tell SQL about the underlying architecture.

If you give it more cores than there are on a single CPU without enabling vNUMA then SQL doesn't know about memory locality and runs threads on CPU1 with the associated RAM on CPU2. - very poor memory performance since everything has to go over the QPI bus.

Best option for the big stuff - don't virtualize it but that's expensive.
What were the top attacks of Q1 2018?

The Threat Lab team analyzes data from WatchGuard’s Firebox Feed, internal and partner threat intelligence, and a research honeynet, to provide insightful analysis about the top threats on the Internet. Check out our Q1 2018 report for smart, practical security advice today!

Joel ParmerProgram CoordinatorAuthor Commented:
Hey Andy,

In the Performance Best Practices for VMware vSphere 5.5, on page 44 one of their recommendations was stated below:

Size your virtual machines so they align with physical NUMA boundaries. For example, if you have a host
system with six cores per NUMA node, size your virtual machines with a multiple of six vCPUs (i.e., 6
vCPUs, 12 vCPUs, 18 vCPUs, 24 vCPUs, and so on).

My question is if I assign a SQL server 2 vcpus (on one core) and change the numa.vcpu.min=2, will that allow the server to use NUMA technology and resolve the weird CPU load on the guest we were having, even though it's less cores than the NUMA node?
How much RAM have you allocated to the SQL VM?
Joel ParmerProgram CoordinatorAuthor Commented:
24 GB
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Server Hardware

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.