38

I've tried all the solutions available on different forums. This is the configuration of my system:

  • Pentium Dual Core T230 (1.73 + 1.73), 2gb RAM
  • Oracle VM VirtualBox ver. 4.3.14 r95030

This is the configuration of my guest:

  • Windows 7 with 1gb of RAM assigned to it and 20gb of hdd

The task manager of my host shows 100% CPU activity even when the guest is idle.

I've also made a DOS machine which is suggested to do nothing and that reduces the CPU activity to about 56% but not as same as it should be when my host and guests are idle.

Another solution available to me was to set the affinity of VirtualBox to a single processor but I'm not able to do that, it denied the access. I'm logged in as administrator and have also checked "Show processes from all users".

8 Answers8

14

I had this issue with 2D Video Acceleration enabled. Once I disabled it in the Virtualbox machine settings, the host high CPU usage was gone.

Davor Josipovic
  • 754
  • 9
  • 21
10

Also try this alternative where the guy disables "Nested Paging". It worked for me reducing 16% of CPU usage.

If you’re not familiar with this setting. Shut down your virtual machine so that you can edit the settings. Then go to the system tab, click on Acceleration and then uncheck the Enable Nested Paging checkbox. Click OK and start the virtual machine up and you should quickly notice some performance improvements.

7

Your processor does not offer hardware-assisted virtualization so VirtualBox is using software-based techniques, which will use more CPU time and make everything slow.

Read more about it here.

4

None of the above worked for me with an old Acer laptop, 2 x86 CPU cores; 3 gigs of RAM, running Win XP SP3 Host, and Win 7 guest (on VirtualBox 5.0.24). My "Acceleration" tab is disabled, so "Nested Paging" is not enabled. Also "Remote Display" was by default disabled. The VirtualBox panel had automatically disabled selection of any number of CPU cores, and was stuck on 1 CPU (although my Host system tray clearly shows the involvement of both CPU cores). Also the Windows Update of the guest machine was already disabled.

However, my guest machine took up at least 50% of CPU even when idle.

My solution? The problem solved only when I enabled both the 2D and 3D accelerations in "Settings -> Display -> Screen" and then increased the "Video Memory" in the same tab ("Settings -> Display -> Screen") to the maximum 256 meg allowed.

Once the guest machine received a good deal of video memory from the RAM, the CPU usage dropped to a nice 10% to 20%.

Vic
  • 211
2

There seem to be many different causes for high CPU use on the host.

In my case, with a Win7 guest, the solution was to disable the "VirtualBox Remote Desktop Extension".

Either in Settings -> Display -> Remote Display: unselect "Enable Server".

Or by starting the machine with the -vrde off option.

mivk
  • 4,015
1

If you've just set up the machine it's probably windows update. It can't be seen in the process list and is extremely CPU hungry. Had this problem multiple times.

Go to services, find windows update, stop it, see if it drops the CPU usage. If it does consider disabling it completely.

toster-cx
  • 249
1

On recent versions of VirtualBox, it is possible to set a cap on the amount of CPU usage.

  1. Go to Settings -> System
  2. Click on Processor tab
  3. Use the slider beside Execution Cap to set around 50%, or your desired CPU usage
ObiHill
  • 119
1

I have had this issue several times. When I first reboot, the VMs seem to not take much time at all and at some point, they use between 50% and 100% of a host CPU.

All of the tricks mentioned in the existing answers had no positive effects in my case. Actually, some had very detrimental effects (i.e. removing some of the hardware support). Instead, my issue was with my network. I work on an embedded software which generates a stream of UDP packets which it broadcasts. In this case, that's heavy since I broadcast audio & video data. When I stop that software, things go back to their normal/expected levels.

I wanted to add this note here because it is not self evident. The UDP packets are broadcasted on a specific network (10.0.0.255/24) and my VMs are on a different network (192.68.0.0/24). Therefore, I was thinking that those packets would not make it to any of the VMs. However, VirtualBox probably cannot infer that. It probably has to forward all the packets to properly simulate the network.

Alexis Wilke
  • 1,806