Why is idle windows VM using so much CPU?
I have 2 VMs running as guests on a KVM virtualization platform running on Ubuntu 10.04. One VM is an Ubuntu 10.04 system, the other is a Windows 7 system. When both machines are completely logged out, the Linux machine uses 1% CPU, the Windows one 45-50%, according to top. The graphs in virt-manager seem to back this up. There's nothing installed on the Win7 image that would be running in the background; its as fresh as can be.
Why is the Windows VM using so much more than the Linux VM, when both are logged out and idling?
Edit:
I installed the guest with paravirt storage and network drivers from the get-go. I don't believe there are any other drivers that I'm missing, am I wrong?.
According to the guest's task manager, it is indeed idle. Taskman takes about 1 or 2 % of the guest CPU, but there's no other processes taking up any CPU time.
What version of QEMU-KVM are you running?
We've seen this issue on versions 0.12.3 and down, but it doesn't seem to be too much of a problem on 0.12.4. Also, check to see if the screensavers are running. If you're using the VNC connection then it may be running there, and the CPU utilization won't be inside the VM - it will be used up by the KVM process.
I know that my answer comes after 100 years but: for future reference please see here:
http://forum.proxmox.com/threads/5770-Windows-guest-high-context-switch-rate-when-idle
If that is the casethen here is the solution: http://support.microsoft.com/kb/895980
It dropped my Win2K3 R2 guest cpu ussage (when guest was idle) on my x86_64 kvm host from ~30%-40% to 6%