VMware Cloud Community
purathal
Contributor
Contributor

CPU cores allocation question

I have a host server with two physical processors and each processor has 8 physical cores and 16 threads allocated to it to give me a total of 16 physical cores and 32 threads. I will be running the latest version of ESXi 6

I will be setting up multiple VMs on the above host and basically I want each VM to have 4 CPU cores (virtual?) assigned to it and I like to have the load equally shared between both physical CPUs. It has to be exactly 4 cores assigned to each VM due to SQL core licensing limit.

What is the recommended setting for CPU allocation to configure and achieve the above goal?

0 Kudos
4 Replies
DavoudTeimouri
Virtuoso
Virtuoso

As a best practices, you can create 8 virtual machines and assign 4 core to each machine. There is no performance issue with this configuration.

This configuration is 1:1 (Physical:Virtual) core ratio.

There is no difference between assign core or socket to machine, when you have assigned 1 socket with 4 cores to a machine performance is same as when you have assigned 4 sockets with 1 core per socket!

Just it has impact on your licensing!

If licensing is based on socket, assigning more cores to a single socket is the best choice. if licensing is based on cores, assigning 1 core to each socket is the best choice.

-------------------------------------------------------------------------------------
Davoud Teimouri - https://www.teimouri.net - Twitter: @davoud_teimouri Facebook: https://www.facebook.com/teimouri.net/
0 Kudos
future2000
Enthusiast
Enthusiast

Hi,

Would it not make more sense to allocate a maximum of 16 vCPU's between your machines. Hyperthreading my provide give the idea of more execution pipelines but the actual capacity of compute processors is 16 (2 x 😎 in the above configuration. Sure you can overallocate but for the best performance I would recommend you create a maximum of 4 virtual machines with 4 vCPUs each. This better matches the actual physical properties of the hardware platform.

Using more than this will result in higher CPU ready and IO wait.

I'd recommend a review of Mark's blog post here for some excellent advice in this regard.

When to Overcommit vCPU:pCPU for Monster VMs - VMware vSphere Blog

Cheers

0 Kudos
purathal
Contributor
Contributor

" I would recommend you create a maximum of 4 virtual machines with 4 vCPUs each"


- How exactly should I configure the "Number of Virtual Sockets" and "Number of cores per socket" settings to achieve the above? Again, the SQL is based on core licensing and I should not have more than 4 cores allocated per VM.

0 Kudos
future2000
Enthusiast
Enthusiast

Hi Purathal,

Best practice would be to always use virtual sockets. It is no longer recommended to use cores per socket. You would therefore have 4 sockets. Review the following blog for some background.

Does corespersocket Affect Performance? - VMware vSphere Blog

As always you should assign according to your physical platforms NUMA topology.

Cheers

0 Kudos