I have a 3 host vsphere environment.
One server, no matter what host i have it running on, spikes the HOST cpu, but the guest VM has barely any usage.
VM tools is installed and up to date. windows update all up to date.
If i disconnect the NIC the CPU usage goes down. Task manager shows nothing running that is spiking the CPU on the host.
server running exchange 2013 in a hybrid environment. Exchange only used to manage email accounts. nothing else runs on this server.
The host has 768 of memory and tons of processing power so local recourses are not in question.
any ideas where to look??? anyone seen this before ?
Can you post (e.g. via pastbin.com) esxtop output from two hosts, limited (l) and expanded (e) to the GID of the VM in question? Also maybe some screenshots that show the behavior and what exactly it is you are looking at? Given that there is no in guest CPU utilization, the CPU Usage you see might be just on the IO context or charged to the VM via SYS (just guessing though).
As you mentioned that your problem is somehow related to the vnic, I believe you need to focus on this part:
- check for power management (both in ESXi and OS)
- check for RSS in your VM
- be sure to use VMXNET3
- remove and add your vnic
- check your network for high latency
- check your ping replies time in your network
- check for CPU RDY
please provide more information about your infrastructure design, your connectivity, and your virtualization configuration
What else could possibly cause high host apparent cpu usage, whereas inside the windows guest cpu usage negligibie almost 0, the offending windows program (c++ mfc exe) is not using any cpu on a physical pc, I profiled it with intel vtune profiler and no hidden memory read/write, no disk and network activity (these last 2 are also 0 in vmware performance graphs)
Thank you for any hints
UPDATE : digging into the code it seems timeBeginPeriod(1) caused high host cpu usage, could it be possible ?