VMware Cloud Community
rabih_00
Enthusiast
Enthusiast

CPU Performance

Hello all,

Can someone explain how the CPU monitor works in VC?

I have a VM that shows 100% in the task manager, yet it is very responsive. I checked performance in VC, and the CPU Usage ius also very high, however, on the processor list, I do not see any processor using any CPU power.. everything is zeored. it doesn't add up, something is wrong, I mustr be missing somthing.. any clues or ideas?

what does CPU ready mean and how does it work?

0 Kudos
5 Replies
emmar
Hot Shot
Hot Shot

CPU ready means that your VM is ready to execute something on a CPU but the ESX hosts does not have enough resources to execute this. High CPU ready values is a bad sign as basically it means your ESX Hosts is not powerful enough to provision resources to all your VMs.

One thing to check is the HAL in the VM - is it Uni or Multi processor and how many vCPUs have you given to your VM?

esiebert7625
Immortal
Immortal

Was this a converted VM from a physical server, if so follow these steps...

What should I do after I successfully convert my virtual machine?

If you change from a multi-processor system to a uni-processor system you need to manually change the HAL on the Windows server after the conversion. To do this go into Device Manager after the machine first boots and discovers it's new hardware and then click on Computer then right-click on the processor and select Update Driver. Then select Install from specific location and then Don't search I will choose the driver to install. Then select show All compatible hardware and select the appropriate processor. For example, if you went from a dual cpu to a single cpu then select ACPI uni-processor PC instead of ACPI multi-processor PC. You will need to reboot once you change this. To verify what HAL you are using you right-click your hal.dll in c:\windows\system32 and select the Version tab and select Internal Name and it should say halmacpi.dll for multi-processor acpi and halacpi.dll for uni-processor acpi.

Next clean up all the non-present hardware after the P2V conversion. To do this go to a CMD prompt and type SET DEVMGR_SHOW_NONPRESENT_DEVICES=1 and then DEVMGMT.MSC and then select Show Hidden Devices. Delete any old grayed out hardware.

Next remove any vendor specific applications/drivers. For example on a HP server you should go to Add/Remove programs and remove any HP management agents, survey utility, array config utility, version control agent, etc. Also check your NIC and make sure there are no vendor specific drivers there (ie. teaming). Check the Services to see if all there is anything vendor specific related there and disable any services that are.

wildcattdw
Contributor
Contributor

%Ready = Percent of time there is work to be done, and no physical CPU to do it on.

One rule of thumb that I use (saw it here some time ago) is that up to 5% Ready is OK, even normal; anything between 5% and 10%, best keep an eye on the VM and the host. Over 10% (for extended periods) you best be planning on taking some action.

One thing to keep in mind, if the VM is assigned multiple CPUs, they must both be scheduled on physical CPUs/cores simultaniously. This can cause you some headache (voice of experience here.) If only one CPU has work, both need to be scheduled, which is harder to do, and can take longer, increasing %Ready, response time, and reducing resources for other VMs.

Double check your HAL per emmar's advice, too. If the VM is Win2K3 Server or XP (or later) you should be able to use the SMP/Multi proc HAL, even with only one vCPU without penalty, but if you have multiple vCPUs assigned and the VM has a UniProc HAL, that could cause issues (not sure what the symptoms might be, but check it.)

If none of the above helps, please post more info: Host configuration (CPU type, CPU cores, host memory) number of VMs on the host, and VM configuration.

T

0 Kudos
rabih_00
Enthusiast
Enthusiast

I have been goign through this practise with all the virtualized servers. with the exeption of the HAl choice. I have been chosing "Advanced Configurtaion and Power Interface" rather than APCI Uni-processor, not sure if this will make a difference though.

so to answer yuor question, all what you have said in your reply is already done.

0 Kudos
rabih_00
Enthusiast
Enthusiast

well, seems like Iam doing eveything right.

I have virtualized that server frmo 2 Physical CPUs down to one CPU (in fact one core), changed the Hal from multi-proc APCI to "Advanced configuration and Power interface", remove any ghost entries and OEM entries in the drivers list.

CPU ready shows in Milliseconds now, and it is going over 15 ms, but this is the case for all other VMs opn those hosts.

I have a cluster of 3 hosts, 4 Dual core CPUs, 64 GB Ram and ISCSI backend using SW initiators.

I am running 40 VMs in this cluster.. not havnig any porblems with any other VM though.

0 Kudos