VMware Cloud Community
luisarnauth
Contributor
Contributor

CPU performance on single VM

Hello,

Please consider this scenario, one HP ProLiant DL380 G6 with 2x Intel E5520 and 24GB of RAM and only one VM with Windows 7 Pro x64 (must be this OS because of application compatibility).

Since the OS limits and the KB article http://kb.vmware.com/kb/1010184 the VM has 4 vCPU, 4 cores and 12GB of RAM.

The VM is executing a rendering application and is, as expected, always at 100% CPU on all cores, but the hypervisor is roughly at 50%. Is there any special configuration to force the hypervisor to dedicate all CPU power to the VM or this behavior is by design (CPU Scheduler)?

The decision to go with this configuration and ratio (1:1) is because of the lack of HP OS driver support (none for Windows 7 on this server).

Since one of virtualization benefits is encapsulation I was expecting to see a bit more performance.

Does anybody has an idea or experience with this weird ratios?

Thank you in advance,

Luis Arnauth

Tags (4)
0 Kudos
10 Replies
piaroa
Expert
Expert

Hi,

When you say the hypervisor is at 50%, what do you mean? Where do you get those numbers?

If you have a 4 core host, and allocate 4 vCPUs to a VM, and push the VM to 100% load (on all cores), you should see that reflected on your hosts "Summary tab".

In your case though, you have 2 Quadcore cpus, so, to max out your host you'd need to configure 8 vCPUs or have 2,  4 vCPU VMs running at 100% load.

If this post has been helpful/solved your issue, please mark the thread and award points as you see fit. Thanks!
DSTAVERT
Immortal
Immortal

Unless something has changed desktop products have been limited to 2 physical CPUs. You may be able to adjust cores per vCPU http://kb.vmware.com/kb/1010184

-- David -- VMware Communities Moderator
0 Kudos
luisarnauth
Contributor
Contributor

I've already done that configuration, and to get 4 cores to the VM, I had to configure it with 4 vCPU and 4 cores per socket.

0 Kudos
DSTAVERT
Immortal
Immortal

You may need to experiment but desktop OSs have been limited to 2 CPUs. Two vCPU will be registered by the OS as 2 pCPU. When you have more CPUs than the guests recognizes it will just ignore them.

-- David -- VMware Communities Moderator
0 Kudos
FredPeterson
Expert
Expert

So the host has 8 physical cores and 8 hyper-threaded cores (unless you disabled it?) - in other words, 16 logical cores.

So that means that ESX will tell you it has 16 CPUs.

If you configure a VM with 2 vCPU, 4 cores each (using the cpuid.coresPerSocket) so that there are 8 CPUs in the VM and each CPU in the VM is running at 100%....

Yes, you are going to see that the host machine is only using 50% of its capacity.  This is expected.  However if you look at ESXTOP there are two lines that indicate hyper threaded core total vs physical core total.  The physical core total is going to read 100% while the hyperthread total will read 50%.  This is the PCPU UTIL% and CORE UTIL% figures.

You cannot change this unless you went to 4 vCPU and 4 cores each - but then performance will suffer because not all 16 are real cores.  Or you disabled hyper-threading - but I wouldn't.

DSTAVERT
Immortal
Immortal

You cannot change this unless you went to 4 vCPU and 4 cores each - but then performance will suffer because not all 16 are real cores.  Or you disabled hyper-threading - but I wouldn't.

But since this is Windows 7 you can't use 4 vCPUs. You could go to 8 cores per processor and 2 vCPU but that would require different licensing.

-- David -- VMware Communities Moderator
0 Kudos
FredPeterson
Expert
Expert

Windows 7 supports 1 socket and 32 cores.

Windows 7 Pro and up support 2 sockets, 32 cores.

x64 versions support up to 256 cores.

http://windows.microsoft.com/en-US/windows7/products/system-requirements

0 Kudos
DSTAVERT
Immortal
Immortal

Brain fade. My brain drifted into VMware licensing not Windows licensing. Windows 7 is still limited to 2 CPUs however.

-- David -- VMware Communities Moderator
0 Kudos
DSTAVERT
Immortal
Immortal

So use 2 vCPUs and put core count to 8. See what that gets you.

-- David -- VMware Communities Moderator
0 Kudos
luisarnauth
Contributor
Contributor

Thank you for your help.

Although i can't test the vCPU/corePerSocket multiple configurations (the server is already in the Client) I believe it's safe to consider that the "restriction" is due to Windows 7 pCPU restrictions.

Luis Arnauth

0 Kudos