VMware Cloud Community
avindia
Contributor
Contributor

Core,Logical CPU,vCPU Explained

I am trying to understand vCPU concept  in VMware.

To start with Physical component

SOCKET                        = Physical hole where in one Processor can fit in.

PROCESSOR                = CPU

CORE                            =  Logical Processor in physical chipset.

LOGICAL PROCESSOR =   Amount of CPU's presented to the ESX Host

Example: If I have Two sockets with Two(DUAL) Core Processors means I have total 8 Logical Processors! Is this Correct?

Now with VMWARE vCPU concept considering ESX version 5.x Maximums document (http://www.vmware.com/pdf/vsphere5/r50/vsphere-50-configuration-maximums.pdf)

Achievable number of vCPU per Core =   25 .. What does mean by this? If I have one dual core processor (=2 cores) I can create(overcommit) 50 vCPUs from two cores???

1 Physical CPU   X     2 Cores   X      25 vCPU   = 50 vCPU

Does this mean that 1 Core supports 25 vCPUs ?

There is no one to one relationship between CORES and vCPUs. but you can have 1:1 ratio for good performance.Like 1 CORE = 1 vCPU = 1 VM  will be a good practice.???

Please correct  me if above is correct.It will be great if you can use reference from VMware documentation that explains this.

Thanks in Advance

Avinash

Reply
0 Kudos
6 Replies
beckham007fifa

LOGICAL PROCESSOR =   Amount of all logical cores of cpu presented to the ESX Host

Example: If I have Two sockets with Two(DUAL) Core Processors means I have total 8 Logical Processors! Is this Correct?

2 socket x no of core per socket x logical cores( not sure how much it maybe) = this will give you total logical processor, not sure it that would be 8 , more or less.

Achievable number of vCPU per Core =   25 ..

Yes theorectically this is possible but not in actual scenario.

Regards, ABFS
ChallengeLogic7
Enthusiast
Enthusiast

I have the same question and am struggling to find any decent answers to all of this. I suspect no one really has a clear understandng about this - correct me if I am wrong.

I understand a 'socket' is the physical processor package if you like and a 'core' is a processor within the socket's dye. So we can have 8 cores or more on a single processor socket.

What I am not clear about is when I select 1,2,4 or 8 CPUs in my virtual machine am I specifying that the VM will use 1 socket (and all the cores within it) or 1 core?

Also my ESXi server has 64 logical processors. Does that mean I could create only a maximum of 64 1 vCPU VMs on that host?

Reply
0 Kudos
weinstein5
Immortal
Immortal

A Logical CPU (:CPU) as you pointed equates to a physical core or HT thread  - so if you have an 8 core physical that has hyperthreading enabled you will end up with 16 LCPUs being presented by that physical CPU -

Now a virtual CPU is scheduled to single LCPU  - So if you have a multiple vcpu VM the vcpu will be scheduled to a LCPU on the host - the LCPUs that are used do not necessarily have to be in the same physical CPU -

You can over committ CPU in an ESXi host - in fact with vSphere depending on VM load you can 12 vCPU per LCPU - so with your example yoouu could have 700+ vCPUs

If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful
Reply
0 Kudos
avindia
Contributor
Contributor

Well,

As mentioned someone should explain this in laymans terms with concept and then use practical/recommeneded best practice.

This will help vmware community  to refer this is in real world.

Here is my understanding and see if that helps

some tips before we get into basics

Hyeperthreading is not needed in latest version of VMWARE ESX so no need to subdivide one physical CPU beyond core.

Refer Vmware virtual machine Maximum http://www.vmware.com/pdf/vsphere4/r41/vsp_41_config_max.pdf

One CPU named "Two core CPU" means one physical processor chipset divided into two logical processors.Your machine will show 2 CPU's in device manager

cor2duo.JPG

So you have two processors(cores).Now per Vmware Maximum you can have "25 vCPUs per core" means you have 50 vCPUs.

you can create 50 VM's with 1 vCPU per VM.

In reality it is based on type of application and "workoads" so  ration could be 1:20  where 1 is Core and 20 is vCPU.

to get idea on workload and how many vCPUs ,you should explore tool Vmware ROI and TCO calculator

http://roitco.vmware.com/vmw/

Reply
0 Kudos
weinstein5
Immortal
Immortal

some tips before we get into basics

Hyeperthreading is not needed in latest version of VMWARE ESX so no need to subdivide one physical CPU beyond core.

Refer Vmware virtual machine Maximum http://www.vmware.com/pdf/vsphere4/r41/vsp_41_config_max.pdf

VMware Best Practice is still to enable HT is possible because what you want to provide to the vmkernel is the ability to provide the opportuntity to schedule the instruction being generated by the VMs - so with HT enabled you are providing double the number of locations for the vm's vcpu to be scheduled -

So you have two processors(cores).Now per Vmware Maximum you can have "25 vCPUs per core" means you have 50 vCPUs.

you can create 50 VM's with 1 vCPU per VM.

In reality it is based on type of application and "workoads" so  ration could be 1:20  where 1 is Core and 20 is vCPU.

to get idea on workload and how many vCPUs ,you should explore tool Vmware ROI and TCO calculator

http://roitco.vmware.com/vmw/

or the ration could be higher  1:35 with relly light workloads

If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful
youthin
Enthusiast
Enthusiast

hello, am still miss understand about vmware vsphere licensing with cpu. Could you share me more ?

Best regards,

Reply
0 Kudos