I blogged a couple of weeks ago about my issues running VirtualBox.At the time, I believed I had found an issue involving SuperFetch.In reality, turning SuperFetch off, while helpful, did not address the underlying issue.I eventually worked out that my machine is overheating whenever CPU usage of 40-50% is sustained over several minutes. Several things, or combinations of things, can cause this on my machine, including running full virus-checking scans in Forefront, SuperFetch and, of course, running VirtualBox. Every time the temperature goes up to about 85o, the power management throttles the CPU back to about 300MHz in order to let things cool down again. Once cooler (less than 80o), the CPU switches back to full speed. A cycle is set up that repeats for as long as the relatively high CPU load continues. I use the RightMark CPU Clock Utility to monitor core temperature.
The fan works OK, and my machine is not clogged with dust and detritus.It appears that my Dell Vostro 1720 simply cannot cope with sustained load. The Vostro range has documented overheating problems in relation to the NVidia GPU.Dell ended up modifying the BIOS to keep the fan running constantly to try to keep things cool.Sure enough, my fan never seems to switch off, but just can’t cope with sustained load.Short of convincing the company to buy me a new machine (some hope!), my only options are to adopt whatever strategy I can to reduce sustained CPU load to a minimum and to invest, at company expense, in a cooling pad.
How do I reduce sustained CPU load?Well, there are some challenges here.First, I avoid run full virus scans during working hours.Unfortunately, being a company machine, the policy is locked down and a full scan kicks off every Wednesday lunchtime.My only option has been to kill the scan and try to remember to run one manually before going to bed.
Turning SuperFetch off has helped.It doesn’t really use a huge number of cycles, but it does increase CPU load for several minutes at a time at certain times of the day.In combination with other things, this can be enough to cause my machine to overheat.I haven’t missed SuperFetch except when re-booting, which now takes a lot longer.
And now on to VirtualBox.I’m very dependent on running virtual images on my notebook for development, demonstrations, etc.Although Microsoft includes virtualisation with Windows 7, this is not an option for me.Microsoft only supports 32-bit images and, far worse, my experience was that most of my existing VPC 2007 images simply won’t run under the new WinVPC.Hence, I, like everyone else I know, have now switched to Sun/Oracle VirtualBox which happily runs all my old 32 bit images and allows me to create 64-bit images.Indeed, Microsoft is quite explicit on their web site that they only see WinVPC as a mechanism for handling legacy 32-bit apps that won’t run properly on Windows 7.I have yet to encounter any application that won’t run on Windows 7, so this strategy does little for me.
Unfortunately, VirtualBox can be quite intensive in terms of CPU usage, and causes my machine to overheat.Even if the image is completely idle, VirtualBox can constantly consume 30-50% CPU.I’ve been struggling with this for some time.Here is a summary of strategies to reduce CPU load:
On a single processor, dual core machine, configure each image to use a single virtual processor.This seems to help.I haven’t tested this on multi-processor boxes, so can’t say if the rule should be ‘always use a single virtual processor’ or ‘always use one less virtual processor than the physical processor/core count.
Avoid Oracle VirtualBox 3.2.8 and instead opt to use the old Sun VirtualBox 3.1.8 which is still available.The Sun version seems to be a bit less intensive than the current Oracle version.Oracle certainly introduced a number of changes and seems to burn through more CPU cycles.
And now, something I recently discovered. Try moving to SATA disk controllers. This has worked well for me.One of our system guys tells me that he suspects this better aligns VirtualBox with the controllers used on most modern notebooks, and cuts down the amount of work the machine has to do.I don’t know if this is correct, but I certainly see a significantly reduced load on the machine.
To move to SATA disk controllers, you need to stop you image and then go to ‘Settings/Storage’.Under the ‘Storage Tree’ panel, click the ‘Add Controller’ button and choose ‘Add SATA controller’.Now boot the image and make sure it has a valid network connection with Internet access.To load the required drivers, go to the Intel web site and download the latest version of their Matrix Storage Manager.You can currently find this on this page:
http://downloadcenter.intel.com/SearchResult.aspx?lang=eng&ProductFamily=Chipsets&ProductLine=Chipset+Software&ProductProduct=Intel%c2%ae+Rapid+Storage+Technology+(Intel%c2%ae+RST)
Once the manager is installed, shut down the image.Then go back to ‘Settings/Storage’, remove your hard disk from its current controller and add it to the SATA controller.Reboot you image, and hopefully things will improve.
Finally, if you have the same problems I have, invest in a cooling pad.Mine arrive at lunchtime today just in time for me to test it during a full Forefront scan.I placed the notebook on the pad, plugged it into my USB port (to run the fan) and watched the temperature reduce down by about 12/13o. For the next few hours it ran the full scan without going much above 60o, which is well inside the safety zone. At the same time, I was running, and using, VirtualBox. The scan is complete and I am down to about 54o. This still strikes me as a tad on the warm side, and I have to say I think there is probably some underlying fault on my machine, but our systems guys feel differently. So, for the time being, armed with VirtalBox optimisations and a cooling pad, I can once more enjoy a productive relationship with my notebook.