Huge host CPU usage in idle vmware guest. Ubuntu 10.04 host, Vista SP2 guest

cpu-usageubuntu-10.04vmware-playerwindows-vista

I'm experiencing huge host CPU usage with an idle vmware guest.

Host:

Ubuntu 10.04 32-bit 2.6.32-24-generic-pae.
(Very new install, i.e 24 hours ago)

Hardware is Dell XPS M1530 laptop, 4GB ram. Intel Core II Duo T9300 2.50Ghz

The virtualization setting "VT" or something is enabled in my bios.

Guest:

Completely fresh install of Windows Vista, upgraded to latest SP2 and all windows updates installed.

1024 – 1512MB ram allocated.

Absolutely no other software installed on it, apart from VMWare tools.

Situation

When the guest is doing absolutely nothing, I watch with sysinternals process watch on the guest. This shows that system idle process is between 70 and 99%, usually around 95%.

No actual process doing anything.

On the host, I watch with top, I get cpu usage of 20% – 80%, usually around 30%.

What I have tried

  • Single and Dual processor available to guest – no change.
  • Turn off all peripherals to guest – no network, drives, usb etc – no change.
  • Turn off 3d acceleration for guest – perhaps a small improvement, or no change.
  • Upping allocated ram to guest from 1024MB to 1512MB – no change.
  • Yelling at vmware – no change.

I have experienced a similar issue in the past, which was solved by setting the guest to have 1 CPU. This time that hasn't worked.

Best Answer

It isn't reasonable to expect that all of the host CPU cycles will be available for the guest. There are a thousand places where computation will need to be done on the host, from displaying its own console to logging to calculating network checksums. If there is any iscsi going on this too will eat CPU. If the guest is accessing the disk for some reason but isn't using much CPU, you'll likely see more load in the host than the guest. The host might be processing traffic from the network and making routing decisions.

Given that this is an instance of some kind of vmware host in a ubuntu guest OS on a laptop, anything from the drivers which support the laptop hardware to cronjobs, update checking, time sync, and beyond can be consuming CPU. If there is software raid, there might also be some calculations going on for that. There could be filesystem indexing.

The best thing to do if it's really a concern for you (if you're not having any issues with resource scarcity it's not an issue), check out top on the host to see what processes are consuming cycles.

Note also that the processes consuming CPU might be niced. If this is the case, they will run with less priority (probably less priority than the guest) and will give way if the CPU is needed for other things.

Related Topic