I have a Dell R410 server with 2 x E5620 2.5 Ghz processor sockets. As per the Vsphere client, since each socket has 4 cores and hyper threading is enabled, I have 16 logical processors = about 17k MHZ at my disposal.
My collegeue created a win2k8r2 VM with 1 virtual CPU. For that particular VM, under the "Summary" tab, the "Resources" box shows that the "consumed Host CPU" varies from 500 - 2,500 MHZ. To my knowledge all ESXi other CPU parameters (such as Reserved/limit) for that VM have been left at default values.
When I logon into the windows console for that VM, the properties for the computer says Processor: Xeon E5630 2.53 GHz. I then launch the Task Manager and under the performance tab, it shows me only one box for the CPU Usage History as if it had only 1 CPU and no multi-threading.
Questions:
When the graph shows that the CPU spikes regularly at 100% what does that mean? As I said above the Host CPU speed varies from 500 - 2,500 MHZ. Why is is not using the other 15k Mhz? What is 1 virtual CPU in terms of what I should see for the # of CPU boxes in task manager?
I'm a little lost when it comes to all these variant type of CPU references and how it translates into what I should see in Windows Task manager.
for example, is the above 1 virtual CPU assigned to my VM = 1 physical CPU socket which in my case equals 4 physical cores or 8 "virtual" CPU because of hyper-threading which should equal 8 CPU Usage Boxes in task manager in windows?
Any clarification on the above would be greatly appreciated.
Thanks
Welcome to the Community - now to confuse you more - a virtual cpu (VCPU) is scheduled to a logical cpu (LCPU). A LCPU can beither a physical core or a hyperthread - so the single VCPU will be scheduled on one of the 16 LCPUs your host is presenting. This means that a single VCPU will only have access to a maximum of 2.5 GHz -
Welcome to the Community - now to confuse you more - a virtual cpu (VCPU) is scheduled to a logical cpu (LCPU). A LCPU can beither a physical core or a hyperthread - so the single VCPU will be scheduled on one of the 16 LCPUs your host is presenting. This means that a single VCPU will only have access to a maximum of 2.5 GHz -
Thanks for clarifying that. I've read a few more threads on this and most people seem to associate 1 VCPU to 1 Core. So even if hyper-threading is enabled which doubles my number of LCPUs, I will not take that into account. So in my particular case, all the VMs combined on that server will never be given more than 8 VCPU. This should guarantee that I will not suffer from VCPU contention.
Furthermore, people commented that 1 VCPU per VM is sufficient. Like others observed, I do not agree with that assessment. In my case my consumed Mhz never went beyond 2,500 when I had 1 VCPU. Your explanation confirmed that. After adding more VCPUs to my VM, I saw the consumed Mhz spike to 4,500. So it does make a difference!