Link to home
Start Free TrialLog in
Avatar of E C
E CFlag for United States of America

asked on

Best practice for assigning Virtual Sockets and Cores Per Socket

I have some questions about the best practice for assigning 'virtual sockets' and 'cores per socket' when creating a Virtual Machine.

I have a Dell PowerEdge T620 Server.
- 2 Processor Sockets.
- 6 Cores per Socket.
For this *physical* machine, vCenter Server says there are 24 "Logical Processors"

1. I assume that's because 2 x 6 = 12, then times 2 because they are hyper-threaded.
Is this correct?

OK, so now I want to create 4 virtual machines on this server.
Each VM is Windows 2008 R2 Enterprise Edition.

I don't want to limit the horsepower that is available to each server. I want VMware to figure out how to "share" the CPU.


2. So is it best practice to configure each VM with 24 CPUs, like this ...
Number of Virtual Sockets: 2
Number of Cores per Socket: 12
----
Total Number of Cores: 24
... and then let VMware figure out how to 'share' the processors amongst the 4 VMs?


3. If so, since the *physical* server has 2 processor sockets, should each Virtual Machine therefore (as a rule?) have (and be limited to) 2 Virtual Sockets? (Or do the two have nothing to do with each other)

I realize that because they are 'virtual', I could (technically) do any of the following:
- 1 virtual socket x 24 cores
- 2 virtual sockets x 12 cores
- 3 virtual sockets x 8 cores
- 4 virtual sockets x 6 cores
- 6 virtual sockets x 4 cores
- 8 virtual sockets x 3 cores
- 12 virtual sockets x 2 cores
- 24 virtual sockets x 1 core


4. Or, is this NOT standard practice to configure every virtual machine to match the physical server? (In other words, should I NOT be configuring each VM to have 24 vCPUs even though the Server has 24 ?


5. Is it better to 'hard-code' limit the portion of the physical CPU that each VM should use? (At this time I have not determined what applications I will be running on each of the 4 VMs, so that's why I'm really not liking this idea of explicitly defining this for each VM.)


6. When configuring a new VM (using vCenter client), the 'CPU' tab has a message: "The virtual CPU configuration specified on this page might violate the license of the guest OS". (The key word is "might" ... even when set to 1 virtual socket and 1 core per socket, this message stays there. VMware leaves it up to you to figure out the OS licensing).

I searched online and the Maximum *physical* CPUs supported in Enterprise Edition is 8,  but is that sockets? cores? or CPU? (In other words, does this mean I am limited to how I create a VM? Do I need to select a 'virtual socket' and 'cores per socket' combination that equals 8, not 24?
ASKER CERTIFIED SOLUTION
Avatar of Andrew Hancock (VMware vExpert PRO / EE Fellow/British Beekeeper)
Andrew Hancock (VMware vExpert PRO / EE Fellow/British Beekeeper)
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of E C

ASKER

hanccocka,
Many thanks for your prompt reply!

When configuring a VM in vCenter Client, there is a warning message on the "CPUs" page. It says "Changing the number of virtual CPUs after the guest OS is installed might make your virtual machine unstable"

From your experience, is this something I need to worry about? Will my VMs have problems if I start with 1 vCPU and then increase it later to 2 or 4?
Correct, it's a warning, for legacy based OS, like ANY change to ANY VM or Physical machine could break it! (VMware do not want to be liable it it breaks you VM!)

No problems, at all......

in the early days, Windows NT Win2k0, Win2k3 you had to change the HAL manually, but most modern OS today, have multi processors HALs, and are plug and play!
Avatar of LUBOSFIALA
LUBOSFIALA

Hello,

to your last question about socket/core licenses. Windows 2008 R2 Enterprise Edition supports maximum 8 Sockets, so you can assign to virtual machine not more than 8 sockets, but you can assign any number of cores.

In practice this means, that if you use maximum 8 sockets and 2 cores per each socket, you will see in Windows 2008 Ent task manager 16 "CPUs" . If you will configure 16 Sockets for VM, you will see just 8 "CPUs" in task manager.