VMware Communities
sambul12
Contributor
Contributor

High CPU load in a VMWare VM at idle

When VMWare WS starts and stays idle with all VMs powered Off, my PC Intel Quad CPU load stays the same compare to when the WS is exited. But as soon as I open any VM in the WS, CPU load jumps to 25% and stays there even if I do nothing inside the VM, i.e. WinXP Guest just idles or even never booted due to lack of bootloader on the connected vmdk or similar reason. Why CPU load stays high despite WS is doing seeminly nothing until I power Off the VM? Any way to discrease CPU load at the Guest OS idle?

0 Kudos
18 Replies
continuum
Immortal
Immortal

is this vmware-authd.exe that produces the high load ?


________________________________________________
Do you need support with a VMFS recovery problem ? - send a message via skype "sanbarrow"
I do not support Workstation 16 at this time ...

0 Kudos
sambul12
Contributor
Contributor

No, high load is produced by  vmware-vmx.exe (25% CPU load) continuosly under which there is vprintproxy.exe that gives no load. It happens regardless of  a particular VM guest started or failed to start but still open in WS 7. As soon as the guest is closed, load drops to 0. For Quad CPU 25% load doing nothing is TOO MUCH, making it prohibitive to use WS7. Any ideas?

0 Kudos
continuum
Immortal
Immortal

at first sight that sounds like you simply use to many virtual CPUs per VM


________________________________________________
Do you need support with a VMFS recovery problem ? - send a message via skype "sanbarrow"
I do not support Workstation 16 at this time ...

0 Kudos
sambul12
Contributor
Contributor

No, all VMs use 1 (one) CPU, and number of cores is selected from 1 to 4. I found that if only 1 core is selected, VMWare WS uses 25% of real PC CPU capacity (i.e. 100% of that core). If 2 cores are assigned to a VM, VMWare continuosly loads 50% of real host CPU capacity, and if 4 cores are assigned, it uses 96% of host CPU capacity all the time until a started VM is powered Off, despite there is nothing running in the guest (except of course a Win system idle process) or guest has never started due to lack of NTLDR or just waits for a user to select a boot option, and despite the guest's CPU load (measured inside guest OS after it starts) stays around 0 (zero). It happens with just about ANY VM regardless of type or installed OS presence: assigned host CPU load is consumed entirely at WS idle continuosly.

As you may noticed on the CPU Gadget and Process Explorer pics linked above, VMWare WS consumes 25% host CPU capacity with a single core assigned to it (out of 4 real cores, i.e. 100% of the assigned capacity), and a multitude of other tasks running in host in parallel with WS consume only 5% of real CPU capacity. This seems to point to extreme memory leaks in VMWare WS7.1.2. Any ideas, how to fix?

I wanted to update to 7.1.3 (may be the leak is fixed), but as always it downloads the whole package all over again, and it stopped in the middle. Where VMWare saves downloaded update files? Does VMWare web file server support Download Resume?

P.S. I double check, and 100% dedicated CPU load at idle only occurs with VMs created on WinXP 32-bit host, and run in Win 7 64-bit host. Any VMs created in Win7 64-bit host run with about 0% load at idle regardless of guest OS type. It looks like I need to maintain 2 separate VM folders: for 32 and 64-bit hosts. :smileyshocked: It looks like similar problem occurs with mounting same VMs as drives: I had to convert 32-bit host created vmdk files to same VMs on a 64-bit host in order to mount them in Win7 64-bit as drives with vmware-mount.exe.

0 Kudos
sambul12
Contributor
Contributor

It looks like I can better pinpoint the actual cause for CPU overload. I created a new WinXP 32-bit VMWare WS 7 VM in Win7 64-bit host, and restored my WinXP 32-bit portable system drive to a virtual drive inside the VM. Then I booted into the VM guest, and CPU load was near 0. I stopped the VM, and changed number of CPU cores from 1 to 2. When I rebooted the VM, WinXP Device Manager shown 2 quad core processors instead of one, with "?" both, hence with the wrong drivers setup. Windows couldn't find the right drivers, and CPU load was continuosly at 50% (because of 2 assigned cores) at VM idle. I deleted one proc, but Win still couldn't find the right driver for the other proc.

I stopped the VM, changed number of cores back to 1, rebooted, and device manager shown the right driver for the single proc, and the CPU load at idle dropped back to 0. Hence, it appeas that VM BIOS misrepresents the assigned number of cores as the number of stand alone processors. It also probably misrepresents proc architecture when starting in Win7 64-bit host some VMs created in WinXP 32-bit host. It causes for some reason huge CPU overhead regardless of the VM booted or failed to boot until it is closed. Is that a VMWare WS BIOS bug or what?

0 Kudos
continuum
Immortal
Immortal

in XP you can't just add a CPU or Core and expect it to work out of the box.

Did you change the HAL ?


________________________________________________
Do you need support with a VMFS recovery problem ? - send a message via skype "sanbarrow"
I do not support Workstation 16 at this time ...

0 Kudos
sambul12
Contributor
Contributor

I assume you're talking about manipulating XP guests created in one type of host and used in another. How I can change the HAL, and why would I? Smiley Happy

I'm probably missing something important here, written between lines in VMWare Help, or presumed obvious? Smiley Wink

Also, even if I change NOTHING, a VM guest created in XP 32 host, gives 100% assigned CPU load at idle or despite never booted in Win7 64 host. Why is that? :smileydevil:

Where VMWare saves downloaded update files?

0 Kudos
AWo
Immortal
Immortal

1. You need to change the HAL (depending on which HAL actually used) to get the guest recognizing the additional processor or vice versa if you reduce the amount of vCPU's.

2. You should keep the number of vCPU's as small as possible. Having more CPU's in virtual guests is something different than having them in a physical box. The number of cores in your host sets the limit of vCPU's you shpuld use, especially in hosted products like VMware Workstation/Player or VMware Server.

Are the VMware Tools installed inside the guest? Have you checked which process in the guest creates that load (Task Manager)?

AWo

vExpert 2009/10/11 [:o]===[o:] [: ]o=o[ :] = Save forests! rent firewood! =
0 Kudos
sambul12
Contributor
Contributor

How to change HAL and to what values?

CPU load is high even if boot is stopped or impossible due to lack of bootloader or MBR. The Tools are installed. CPU load after boot goes to 0% if WinXP can install a proper driver for the proc. Otherwise it stays at full assigned CPU load 100% (i.e. 25% of host CPU load for a VM with single core CPU), with only System Idle Process showing load.

0 Kudos
continuum
Immortal
Immortal

> CPU load is high even if boot is stopped or impossible due to lack of  bootloader or MBR.

CPU load is always high when a VM hangs during boot - that is normal

Changing HAL is only necessary when you change the amount of vCPUs from 1 to 2.after first installation
Then you need the HAL for ACPI multiprocessor PC


________________________________________________
Do you need support with a VMFS recovery problem ? - send a message via skype "sanbarrow"
I do not support Workstation 16 at this time ...

0 Kudos
sambul12
Contributor
Contributor

The VM doesn't hang at boot - it just waits for boot option selection. There is no CPU overhead during such wait if a VM was created in the same Win7 64-bit host it runs in. It still points to VM BIOS bug IMHO.

How to change HAL - is that a difficult question - no answer in VMWare Help. But...I seems to find the thread that explains the fenomenon. Smiley Happy For those VMWare users not familiar with HAL options, this MS KB may help: HAL options after Windows XP or Windows Server 2003 Setup. Still strange why CPU overhead stays high at boot idle before OS is booted?

In what folder VMWare WS stores downloaded updates & its new versions? My update download hanged in the middle, so I want to find and erase that huge file.

0 Kudos
continuum
Immortal
Immortal

downloads go to a temp directory - depending on host OS and user.

Look out for the equivalent of
C:\Documents and Settings\moon\Local Settings\Application Data\VMware\vmware-download-00B4
on your system.

You say that VMs are different when installed on XP 32 or Win7 64 - do you have any proof for that ?
It should not make a difference - if the vmx-file used is the same


________________________________________________
Do you need support with a VMFS recovery problem ? - send a message via skype "sanbarrow"
I do not support Workstation 16 at this time ...

0 Kudos
sambul12
Contributor
Contributor

I say VMs behave differently depending whether they are run in a host where it was created or another host type. The proof is in pics above: a VM created in WinXP 32-bit host, runs in Win7 64-bit host with 100% assigned CPU resource usage at boot idle, while same VM created in Win7 64-bit host runs with 0% CPU usage at boot idle. Is that good enough proof for you? Smiley Happy

0 Kudos
continuum
Immortal
Immortal

sorry - the screenshots explain nothing to me.

A VM that is not fully booted is expected to have a high load


________________________________________________
Do you need support with a VMFS recovery problem ? - send a message via skype "sanbarrow"
I do not support Workstation 16 at this time ...

0 Kudos
rseiler
Contributor
Contributor

Any update on this issue?  I've accounted for the generic suggestions here:

http://communities.vmware.com/message/1589388#1589388

Host: First-time setup of 7.1.4 on W7 SP1 x86

VM: XP SP3

At first, I thought the CPU use tied to vmware-vmx.exe was a result of the Windows Updates taking place in XP, but it never subsided (for long) even afterwards. I should note that sometimes the CPU use does stop, but inexpeclicably it'll begin again. I haven't seen unexplained CPU use in the past tied to either Virtual PC or Virtualbox, so it's not a matter of it being too much for the Host to handle.

0 Kudos
tacticsbaby
Expert
Expert

Were you ever able to change the HAL for your XP VMs? You can do it in device manager. Under 'Computer' you will see 'ACPI Uniprocessor PC' If you have a single CPU installed. The trick here is to make sure that if you add a second CPU, but then remove it you should make sure that you change this HAL back to the one that I listed. From my understanding the HAL is automatically updated when you add your additional CPU(s). Hope this is useful.

0 Kudos
rseiler
Contributor
Contributor

That wasn't me. Mine was single all along.

0 Kudos
chootmang
Contributor
Contributor

QQ, would you go into Device Mgr for WIN XP first to change the HAL, then shutdown add the second vCPU? I would guess that is the wrote as opposed to adding the resources and then expecting the guest OS to load correctly to the alter the HAL?

0 Kudos