VMware Communities
ricolich
Contributor
Contributor

Normal CPU activity when idle?

I have been running Fusion for about a month and a half now, and everything works absolutely wonderful.

There is just one thing that's bothering me, and that's that a process called "vmware-vmx" consumes about 20% of CPU power even when absolutely nothing is going on in my Windows XP guest. I could live with some processor drainage, but the problem is that I often need to run my MacBookPro on battery and need to get the most out of my battery.

Perhaps this is normal. What CPU activity do others have in similar setups? If someone can help me I would appreciate it greatly

Here are my setup details:

I have been running different versions of VMware and right now I am running the beta Version 1.1b1 (57919). They all have had the same CPU activity.

My hardware is a 2.33 GHz Intel Core 2 Duo with 2 GB of RAM, running Mac OS X 10.4.10. I have tried disconnecting peripheral devices and disabling network, but the CPU activity remains at the same level.

My guest OS is Windows XP, Service Pack 2, all Microsoft patches applied. When I am running Task Manager no Windows XP process consumes more than fractions of a percentage and shows fully normal activities.

I have assigned 756 MB to the guest, I am running NAT and using my Mac OS X home folder as shared folder

I also should mention that I am using my Boot Camp partition as virtual machine. It was installed on a newly created partition and the only software I have installed that I think might impact is the AVG free edition (anti-virus software) , MacDrive 7 (which I need when I boot into Boot Camp) and Norton Save and Restore (backup program)

0 Kudos
17 Replies
Rzn8tor
Enthusiast
Enthusiast

On my MBP 2.4GHz 4GB system my XP guest shows about 20-23% CPU when idle. I'm running 1.1b1.

To conserve battery you could suspend the guest when you are not using it.

clsbn
Contributor
Contributor

In my MacBook Core Duo 2 Ghz with 2 Gb Ram and a guest Windows XP with 576Mb Ram when absoultely idle, vmware-vmx process under OS X is arount 7-10 %

rcardona2k
Immortal
Immortal

My hardware is a 2.33 GHz Intel Core 2 Duo with 2 GB of RAM, running Mac OS X 10.4.10. I have tried disconnecting peripheral devices and disabling network, but the CPU activity remains at the same level.

My guest OS is Windows XP, Service Pack 2, all Microsoft patches applied. When I am running Task Manager no Windows XP process consumes more than fractions of a percentage and shows fully normal activities.

I have a 2.2 GHz MacBook Pro with 3 GB of RAM. With Fusion 1.1 build 57919, I'm seeing 6% host utilization when the VM is idle.

What are your virtual CPU options: 1 or 2 virtual CPUs and 3D Acceleration status? I'm using 1 vCPU and no 3D acceleration.

0 Kudos
ricolich
Contributor
Contributor

I incidentallymade a really interesting discovery!

If I turn off/disconnect the iSight Camera CPU activity drops down to 5-7%, when I reconnect it, CPU again rise to higher levels, about 23-25%. Turn it off, and it drops again.

I am using the iSight 1.3.0.0 driver, dated 2007-04-09, which I believe is the latest (as I have updated my Boot Camp partition with the lastet boot camp driver disk, and Apple Software update reports no newer drivers)

I have no troubles using the iSight camera, on the contrary it works very well, but it seems strange if it needs that much even with no applications using the camera is started and if VMware is in the background

0 Kudos
ricolich
Contributor
Contributor

Rzn8tor,

If you read my reply to my own post Smiley Happy you will see that I just found out that disabling the iSight camera made the processor activity drop to more "normal" levels. Would it be possible for you to try the same thing and see if has the same effect for you?

Thanks

// Richard

0 Kudos
rcardona2k
Immortal
Immortal

> If you read my reply to my own post Smiley Happy you will see that I just found out that disabling the iSight camera made the processor activity drop to more "normal" levels. Would it be possible for you to try the same thing and see if has the same effect for you?

I just tried this and yes the CPU jumps to over 20% with the iSight connected.

I have tried disconnecting peripheral devices and disabling network, but the CPU activity remains at the same level.

I had assumed by the statement above in your original posting you meant not just physical, external usb devices but the ones built into a MacBook Pro like the iSight camera. Clearly connecting USB devices requires extra cycles from the host. I've seen the same behavior in Parallels. The nature of beta software make this somewhat more noticable. On the released product, it's less taxing but still not the same as a VM with no devices connected.

0 Kudos
ricolich
Contributor
Contributor

I saw the same levels on Release versions (not beta) and while I can appreciate the fact that every device takes it's toll, it does seem a bit hefty to see such a rise for a connected device not in use. It would be nice if someone from the WMware team could comment on this.

Thanks all for you help, it is good to have found out what's causing it and to know it is not specific to my setup.

0 Kudos
rcardona2k
Immortal
Immortal

I saw the same levels on Release versions (not beta) and while I can appreciate the fact that every device takes it's toll, it does seem a bit hefty to see such a rise for a connected device not in use.

In my experience the load is not proportional to the number of usb devices connected, i.e. if I connect two devices the host CPU load doesn't jump to 50%, or 75% for three devices. It appears to be gated upon "activating" the USB device bridging code.

I agree, getting VMware to shed some light on the true source of the load would be helpful. (I have some catching up to do here, but I'm pretty sure this topic may described elsewhere) I found one posting from Micah describing usb cpu load here: (refer to the last response)

0 Kudos
admin
Immortal
Immortal

Disclaimer: I am not a USB expert. I know nothing about Fusion's USB stack.

USB is polled by the host instead of being interrupt-driven. Additionally, quick Googling suggests that this must be done constantly whether or not the device has data. I could imagine that normally, USB controllers take care of this but in a virtual environment this has to be done by the CPU (say if the controller is not virtualizable).

Is 20% increase reasonable? No idea, but a similar increase in CPU can be seen on CentOS, which has a high timer interrupt rate (kHz) relative to other Linux distros (100s down to tickless) - IIRC the difference there is actually higher. Recompiling CentOS to user a lower tick rate brings it's CPU usage back in line with other distros, so simply having a high interrupt rate can cause high CPU usage (or there's a common bug).

Assuming this is true, then it makes sense that the CPU load does not scale with the number of devices: the penalty is coming from having to poll the USB devices at all, not what you do once you talk to a device.

0 Kudos
ricolich
Contributor
Contributor

Thanks for the feedback. I do have other USB devices attached, such as USB hub and keyboard and mouse, but they do not require such an amount, but perhaps they are somehow handled by OS X?

0 Kudos
rcardona2k
Immortal
Immortal

Thanks for the feedback. I do have other USB devices attached, such as USB hub and keyboard and mouse, but they do not require such an amount, but perhaps they are somehow handled by OS X?

Definitely the keyboard and mouse are handled separately. They're treated separately which is good because VMware offers the ability for these devices to be driver-agnostic in the guest VM, e.g. OS X is processing the Macbook trackpad, usb keyboard/mouse, optical mouse, mighty mouse, bluetooth mouse, or whatever other exotic keyboard/mouse you may have. The flipside is Fusion is dependent on the nuasances of the OS such the secure input mode which can block input the guest VMs, and any more than three buttons and a wheel on a mouse are "abstracted away". Net-net I prefer how the keyboard and mouse is handled.

0 Kudos
admin
Immortal
Immortal

Yes, keyboard/mouse are emulated rather than passed through - this is why you can use them in both host and guest, unlike other USB devices. If you check under Device Manager you can see we emulate a PS/2 mouse/keyboard, which is why mice with lots of buttons don't work without the usb.generic.allowHID setting described in (since there aren't buttons to map them to).

0 Kudos
st_mue
Contributor
Contributor

Hi,

I also have this problem. I use SuSE 10.2 and it takes 25-30% when ideling. I use two CPUs. I disabled USB completely, but this did not make a difference. Do I have to recompile the kernel to get fewer interrupts? I switched to Mac and Fusion to get rid of this kernel compiling business ... =;-)

Thanks and greetings

Stefan

0 Kudos
rcardona2k
Immortal
Immortal

I don't think I've seen a Linux VM idle under 10% of a host CPU. I think you're going to need a VMI-enabled Linux kernel to achieve what you want.

0 Kudos
admin
Immortal
Immortal

Hmm, thought I replied via email but looks like it got lost. Switching to 1 vCPU should decrease idle usage.

0 Kudos
admin
Immortal
Immortal

Try using only one CPU.

0 Kudos
limebreeze
Contributor
Contributor

I'd been struggling with a very slow VM (for me, it's Vista x86 under Boot Camp) and high CPU usage during idle. After some effort, I'm now running ~7-9% on 2.4GHz MBP.

- Disconnecting the CD/DVD and all USB devices helped bring idle CPU down significantly.

- Removing iTunesHelper.exe and Skype.exe from HKLM/Software/Microsoft/Windows/CurrentVersion/Run

- Disabling/Removing Norton Ghost (i.e. the VProSvc.exe and VProTray.exe) and only manually running that under Boot Camp

I'm still trying to see if I can script it so the services/programs which seem to eat idle CPU under Fusion can be run only when I'm booting under Fusion. But, now it's a bit manual.

The 'ah ha' for me was seeing CPU usage drop to 7-9% if I just left Vista sitting at the login screen for a long time. I then literally went down my Run list and killed everything in the Task Manager to see what would reduce idle CPU usage. Then, I stopped services.

Once these programs/services aren't using 30-40% of the host's CPU, Fusion is almost snappy.

Hope it helps.

j.

0 Kudos