I recently setup a few virtual machines under ESX 4 and found that the Centos hosts were running in  between 300 and 400 mhZ where as the Windows 2k3 and even the Ubuntu hosts were running at approx 70-100 mHz idle.

I learnt that it’s got to do with the frequency of the interupts changing from 100Hz to 1kHz in the 2.6 kernels.

The kernel that comes with Centos has been compiled with the 1000 Hz option as below:

grep ^CONFIG_HZ /boot/config-2.6.18-128.4.1.el5

CONFIG_HZ_1000=y
CONFIG_HZ=1000

By appending the options in bold below to the /boot/conf/grub.conf kernel= entries, the issue of high CPU is resolved:

kernel /vmlinuz-2.6.18-128.4.1.el5 ro root=/dev/VolGroup00/LogVol00 divider=10 clocksource=acpi_pm

Detail from vmware is here:

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1006427

That's because the default frequency of interrupts
changed from 100Hz to 1kHz (and that is per CPU) in 2.6 kernels.
Placing much more stress on vmware and causing all bunch of problems
with it.  It's configurable compile time option (you'd need to recompile
kernel to change it to the old default)