Learn how to a build a cloud-first strategyRegister Now

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1778
  • Last Modified:

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 Parmer
Joel Parmer
  • 3
  • 3
1 Solution
andyalderSaggar makers bottom knockerCommented:
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?
Joel ParmerAuthor 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?
andyalderSaggar makers bottom knockerCommented:
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.
New Tabletop Appliances Blow Competitors Away!

WatchGuard’s new T15, T35 and T55 tabletop UTMs provide the highest-performing security inspection in their class, allowing users at small offices, home offices and distributed enterprises to experience blazing-fast Internet speeds without sacrificing enterprise-grade security.

Joel ParmerAuthor 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?
andyalderSaggar makers bottom knockerCommented:
How much RAM have you allocated to the SQL VM?
Joel ParmerAuthor Commented:
24 GB

Featured Post

Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

  • 3
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now