So I fought this problem all day long. My Windows XP VMWare image was running like crap. I started to poke around. The first thing I did was to bring up the task manager. Sure enough, my virtual CPU was pegged at around 55-60% when the vm was doing nothing. This is not good!
But when I looked at the actual processes running in Task Manager, I could find nothing taking more than single digit percents of the cpu. Weird. I should have used Sysinternals Process Explorer in the first place instead of XP’s crap tools. It told me that my Hardware Interrupts were running my system down to a crawl.
This must be some kind of driver or hardware issue right? After a ton of googling and finding almost nothing about this, I finally decided to just start disabling everything I didn’t from the services that were running to see if that did anything. Nope!
So then I started removing hardware from the vm. I took out the usb controller. Sure enough! That actually took the cpu down to about 30-35%. After fiddling around for what seemed like forever I finally disabled the network card. Bam! CPU running at below 10% most of the time.
Crap so now what? I can’t have networking in a VMWare session? Well it turns out that I found this little nugget at crn.com. Even though the author, who wrote the article in 2007, is insane and loading Windows 98 (seriously!) in a vm, I still read through the article. In it he changes the virtual network card from the crap vlance one that sucks up 30% or more of my cpu doing nothing with the e1000. The e1000 is a trusty Intel card. I downloaded the drivers from here.
All you have to do is add a line into your .vmx file like this:
Ethernet0.virtualDev = “e1000”
Now my idle cpu usage is less than 10%!
I haven’t looked into it yet, but I’ll be there is a newer driver for the vlance card that I could have loaded as well. Perhaps I’ll have to try that soon.