This is an article gleaned from an exhaustive TechNet forum post. This covers the basics and depth of virtual CPU, CPU sharing / time slicing, and should aid in the understanding of how hypervisors present CPUs to virtual machines.
This has been formatted in a Q and A type of format to divide the topics and group items.
Q: From what i am reading it seems like it should use all 8 cores, although from what i am reading in other parts of thsi forum it doesn't. I understand that the virtual cores are basically an allocation of time to the entire 8 cores?
I just have a software developer telling me that his software will only use 4 cores if presented with the 4 virtual CPU. I said yes it will seem that way to the OS, but under that it will be actaully using all 8 cores as the load is spread across them all.
Am i correct in that assumption?
All 8 physical cores are used, however the VM can only be allocated a (current) maximum of 4 vCPUs.
A physical core gets divided into 8 vCPUs (these are technically logical processors and therefore represent processing time on the physical stack with a maximum of 8 concurrent threads executing on a physical processor at any one moment in time).
As threads execute (vCPUs are used) they are cycled around the physical CPUs.
It is possible for a VM to get 'stuck' on a single physical CPU. Applications like CPUBurn never stop processing and maximize the threads within the VM. The result is that hte execution never has a breakpoint and therefore the hypervisor never gets a chance to cycle the work to the next processor. This is an example of a 'bad' application that does not virtualize well.
We have server with below details, can any one help us to give the details:
DELL PowerEdge 2950 Server with below details :
RAM : 52GB
CPU : Intel Xeon CPU E5420 @ 2.50 GHz, 2493 Mhz
CORES : 4
Logical Processors : 4
From my perspective what I understand from above mentioned scenario :
1 CORE = 8 vcpu
4 CORES x 8 = 32 vcpu
Am I correct, if wrong please do guide me the exact cores & vcpu details I have with above cores & logical processors.
Any help really appreciated
THanks & Regards
Your math is correct. 1 physcal CPU core = 8 virtual CPUs.
So, if you have one 4 core processor you have: 1 (physical CPU) x 4 (cores) x 8 (vCPU / core) = 32 vCPU
The confusing part is the term Logical Processor and that not all hardware descriptions refer to it in the exact same way.
Also, CPU is rarely a limiting factor and this is all just guidance for sizing.
Thanks 4r ur reply. I got a clear picture abt CORES, now wht abt Logical processors : 4?
Can u give me the clear picture of Logical processors too?
Logical processors are simply execution pipelines on the physical processor. Some vendors might reports coreas as this, some might report hyperthreading as this, some vendors might report the actual execution pipelines as this (in which case I would expect more than 4). I won't even remtion that some resellers don't properly report what this is after translation either.
In the virtualization world a logical processor does not equal a core (many folks think it does). And it does not equal a virtual processor in all cases.
As I describe in this article, do not use logical processors for your capacity estimations as there are many variables as to how they actually apply to the system. Simply ignore the number and stick to cores for planning.