GMSS_LLP
Enthusiast
Enthusiast

CPU and VM setup

Hi Guys,

Physical Hardware

ESXi version 6.5

Processor Type: Intel(R) Xeon(R) CPU X5650 @ 2.67GHz

Sockets: 2

Cores per Socket: 6

Hyperthreading: Yes, enabled

There appears to be mixed views online in terms of setting the number of CPU's on a VM.

Just need to iron this out and hope someone can help on this forum.

Basically I have a VM currently setup with 4 cores and 2 sockets (8 CPU's).

Would this perform better if I had set it up with 2 cores and 4 sockets (also 8 CPU's)?

The typical processors running on this particular Windows 2016 VM is usually Word, Excel, Powerpoint, Chrome, Firefox...etc

nothing too taxing that requires Hyperthreading, however Hyperthreading is active.

Many thanks in advanced

Kind Regards

GMSS

Tags (2)
14 Replies
IRIX201110141
Virtuoso
Virtuoso

There is no easy and fully true answer becourse you size the VM larger than your NUMA Node. The impact of violating NUMA boundaries may vary. It normaly  have a greater impact for memory related workloads rather the CPU.

But to be honest... with a "office" VM you should not care because i highly doubt that you can saturate 8 vCPUs.

Over the years VMware make improvements and change the bestpractices when it comes to vCPUs and you run and very old version of ESXi.

Regards,
Joerg

0 Kudos
scott28tt
VMware Employee
VMware Employee

I doubt an OS running desktop apps will ever need 8 virtual CPU cores at all - whether that's 2 sockets with 4 cores each, 4 sockets with 2 cores each, or even 8 sockets with 1 core each.

So, the starting point really should be: Allocate fewer virtual CPU cores.

Unless it's an RDSH server.

Ardaneh
Enthusiast
Enthusiast

Hi,

First of all, you have 2 physical CPU sockets with 6 cores for each, so you can have a VM with 6 vCPU without involving in NUMA issues (of course there are other important considerations for NUMA!), it's better this way! but if you want to have more vCPUs, from the best practices approach, you should create your VM with N sockets and 1 core per socket (for example if you want to have an 8 vCPUs VM, you should create your VM with 8 sockets and 1 core per socket) unless you have some considerations over the number of your virtual CPU sockets such as application licensing, and also you should properly size the vCPU for a VM (right sizing) and make it bigger over time if you need to, so you can start with 2 or 4 vCPUs for this specific need that you have.

Hope this could be helpful

0 Kudos
GMSS_LLP
Enthusiast
Enthusiast

Hi All,

Many Thanks for your reply.

@scott28tt yes it is a RDSH server .

We also have the another RDSH server that will also be running Office and Adobe Creative suit and was just wondering in

CPU terms would it be better to run more Cores per Sockets or more Sockets per Cores?

Does it make a difference? I'm assuming it does seeing the options are there?

Kind Regards

GMSS

0 Kudos
scott28tt
VMware Employee
VMware Employee

The options are there mostly for software licensing - where you have applications in a VM which are licensed per-socket you would probably be better creating a VM with 2 sockets of 4 cores each rather than 8 sockets with 1 core each.

The other factor is NUMA as mentioned by others in this thread.

0 Kudos
IRIX201110141
Virtuoso
Virtuoso

IIRC in the current vSphere 7.0 Documentation VMware recommends 1x vSocket and 8 vCores.

Regards,
Joerg

0 Kudos
TimSheppard
Enthusiast
Enthusiast

Some great advice taken from here https://blogs.vmware.com/performance/2017/03/virtual-machine-vcpu-and-vnuma-rightsizing-rules-of-thu... (updated July 2019)

I propose the following Rules of Thumb:

  1. While there are many advanced vNUMA settings, only in rare cases do they need to be changed from defaults.
  2. Always configure the virtual machine vCPU count to be reflected as Cores per Socket, until you exceed the physical core count of a single physical NUMA node OR until you exceed the total memory available on a single physical NUMA node.
  3. When you need to configure more vCPUs than there are physical cores in the NUMA node, OR if you assign more memory than a NUMA node contains, evenly divide the vCPU count across the minimum number of NUMA nodes.
  4. Don’t assign an odd number of vCPUs when the size of your virtual machine, measured by vCPU count or configured memory, exceeds a physical NUMA node.
  5. Don’t enable vCPU Hot Add unless you’re okay with vNUMA being disabled.
  6. Don’t create a VM larger than the total number of physical cores of your host.
0 Kudos
nachogonzalez
Expert
Expert

Hey, hope you are doing fine.
Let me tell you a fun thing
In my previous employer we were having tons of CPU contention issues due to over commitment and one of our proposals to fix this was to adjust vNUMA

When we went to VMware with the action plan the official response was (not the exact words): "From vSphere 6,5 and onwards the recommended setting is to leave the hypervisor determine the best placement for vNUMA unless you have a specific recomendation."

In addition to that: can you share performance information of the VM and the hypervisor?
Have you ran ESXTOP? reviewed any performance charts? any logs?

Warm regards

0 Kudos
GMSS_LLP
Enthusiast
Enthusiast

Hi All,

Thank you for all your responses, really appreciate it.

There are a few hints and links in here which I need to catch up reading on and as mentioned it is not as black and white when choosing the CPU options.

Although in would seem that keeping the CPU socket count lower than the cores per socket (taking OS/Software licensing into consideration) would be

an advantage over higher socket count lower cores per socket. 

@nachogonzales - I've not run ESXTOP nor reviewed any performance logs just yet, but will do and will take a bit of time to compare them.

Kind Regards

GMSS

loungehostmaste
Enthusiast
Enthusiast

> Don’t create a VM larger than the total number of physical cores of your host

says who? old hardware had two 6-core socekts, new has only one and as you can see clearly using hypterthreading it's in fact faster

Old HW 12 Core: Requests/sec: 1777

Old HW 6 Core: Requests/sec: 1367

New HW SandyBridge 6 Core: Requests/sec: 1417

New HW Broadwell 6 Core: Requests/sec: 1677

New HW Native 6 Core: Requests/sec: 1566

New HW Native 8 Core: Requests/sec: 1844

0 Kudos
TimSheppard
Enthusiast
Enthusiast

> says who?

Says this guy -

Mark Achtemichuk currently works as a Staff Engineer within VMware’s R&D Operations and Central Services Performance team, focusing on education, benchmarking, collaterals and performance architectures.  He has also held various performance focused field, specialist and technical marketing positions within VMware over the last 7 years.  Mark is recognized as an industry expert and holds a VMware Certified Design Expert (VCDX#50) certification, one of less than 250 worldwide. He has worked on engagements with Fortune 50 companies, served as technical editor for many books and publications and is a sought after speaker at numerous industry events.  Mark is a blogger and has been recognized as a VMware vExpert from 2013 to 2016.

Edit for clarity:

The above is an excerpt from the blog post I linked to above. The information was posted on the VMware blog by a VMware staff member who is a also a VCDX and is highly regarded in performance tuning matters. It is not a 'random paper on the internet'.

0 Kudos
nachogonzalez
Expert
Expert

Let me know once you have reviewed

0 Kudos
loungehostmaste
Enthusiast
Enthusiast

and? it depends on the workload and as you can clearly see some can benfit from SMT even within a single guest - that scales up to 10 vcores with 6 pyhscial while 12 vcores will get slower againtwhat you *really* should do is benchmarks on your workload instead just blindly follow random papers on the internet

0 Kudos
scott28tt
VMware Employee
VMware Employee

Moderator:

loungehostmaster

TimSheppard

Gentlemen, please keep your tone and language professional and courteous - as per this: VMware Community Code of Conduct