I would like to ask you to sign up with the Best Hosting and read more web hosting reviews.

Multiple CPUs not being used in virtual server

Category: Techie
26 Apr 2013
Written by Andy Hits: 6619

Had quite an interesting problem with this one.

One of the windows 2003 based shared hosting servers is being migrated from physical hardware to a virtual server running on xen hyperviser.  All looked to be good, with the snapshot running reasonably well, and having the option of moving the physical box that it runs on, should hardware problems happen.

However, after migrating a couple of sites onto it, the server seemed to be running slower and slower, which seemed strange, as it was assigned 4 cores, like the original box.  Once I managed to log in, and pull up task manager, it only showed 1 single core, and the poor thing was running flat out, as it tried to serve the various webservers and database service with processing time.

A trip to device manager showed that it thought it had 4 processors, so it was clear that the operating system recognised them, just was choosing not to use them.  The server was snapshotted, so I could work on a solution without bringing down the sites while I experimented.

The first steps I attempted was to tell the server to not use the ACPI driver for computer.  I set it to use the standard, which would hopefully force it to then detect that it was SMP system rather than single processor.  Alas, all this did was cause windows to think the hardware had changed too much, and need reactivating.

My next attempt, after rolling back to the initial snapshot was to try some boot.ini paramaters to force detection.  A post on the StorageCraft support forum gave some suggestions. The boot.ini paramaters didnt work, it complained about problems of missing files, so I rebooted with the original settings and tried the Device Console utility method

Device Console is a utility created / provided by microsoft, and can be found here, along with instructions too.  In the MSDN library, further documentation shows how to forcibly update the hal tools to be multiprocessor.  The specific commands I ran were:

devcon sethwid @ROOT\ACPI_HAL\0000 := +acpiapic_mp !acpiapic_up

This deletes the single (uni) processor hal settings, and installs the multiprocessor version.   The next command I ran got the system to update the system drivers, so they would function with a multiprocessor acpi setup:

devcon update c:\windows\inf\hal.inf acpiapic_mp

One reboot later, and task manager was showing all 4 cores, and the system wasn't running like a snail

Free Joomla 1.7 Templates designed by College Jacke