Page 1 of 1
number of procesors wrong in Win 2008 Guest
Posted: 27. Sep 2011, 18:14
by Rastus
OK,
I have a VirtualBox Ubuntu Host running 10.04 server on a Dell R610 box with 2 quad core processors and 12 GB of RAM. The host runs fine and shows all 8 processors.
But, I have a 32 bit windows 2008 server guest on that machine and even though the VirtualBox setup on the Ubuntu Host has been set so that the windows guest has 8 processors and 8 GB of RAM, In windows, the machine only sees 1 core.
As you might imagine, this is causing suboptimal performance.
1. Why is Windows 2008 not seeing the processors?
2. How do I fix it so that it does?
Thanks
R
Re: number of procesors wrong in Win 2008 Guest
Posted: 27. Sep 2011, 19:02
by brainshutdown
Did you try changing the number of cpus in the Virtual Machine Settings?
EDIT: OK... forget it. I didn't read carefully.
Re: number of procesors wrong in Win 2008 Guest
Posted: 27. Sep 2011, 19:12
by Rastus
Yes, I changed from 8 to 6 but I did not notice any difference in the configuration under the My Computer>Properties.
Interestingly, when I look under the hardware configuration, all of the processors show up but in the information screen under My Computer> Properties, it only shows 1 processor. In the bottom right corner of the guest window, the little processor icon shows a dialog box with the number of processors from the VirtualBox configuration correctly.
Could it be that it is just somehow displaying incorrectly in that information box?
In watching the system resources on the Linux Host, however, when the windows guest is working hard, it maxes out 1 core while the others stay below 20% so that makes me think that it is not seeing all 8 cores.
Suggestions for further diagnostics?
Re: number of procesors wrong in Win 2008 Guest
Posted: 28. Sep 2011, 04:23
by BillG
From inside Server 2008, go to device manager. If you have multiple CPUs enabled, they will show up there. Also if they are displayed in Device Manager, the OS can see them (and use them if necessary).
What are you planning to run in a vm that you expect to use 8 cores? I have never managed to keep two busy for very long.
Re: number of procesors wrong in Win 2008 Guest
Posted: 28. Sep 2011, 16:20
by Rastus
In the Device manager on the Guest OS, I have 8 cores listed.
The reason that I have 8 cores enabled is that this is our first production server on VirtualBox and we were unsure how much of the machine's resources would be needed. It is a database server for MS SQL and in pre-production tests, we noticed that occasionally, it will have a significant slowdown and spike 1 of the processors on the host to 100% where it will stay for 10 minutes or so. This essentially locks up the system with the hourglass. We are troubleshooting this with the application vendor to determine the cause of the usage spikes but we are also confused why (if it has 8 cores available) it would not increase the usage on more of the processors rather than just maxing out 1.
Re: number of procesors wrong in Win 2008 Guest
Posted: 29. Sep 2011, 04:51
by BillG
That probably has very little to do with VirtualBox. VBox is just an application running under the host OS and has no CPUs itself. When a guest needs a CPU, VBox will send the request on to the host OS and the scheduler in the host OS will decide which processor to queue the request to. It all gets pretty complicated.
Re: number of procesors wrong in Win 2008 Guest
Posted: 29. Sep 2011, 15:19
by Rastus
Bill,
I see what you are saying but I cannot think of what else would be limiting the OS to just one processor. The performance monitor on the host ubuntu machine show 1 processor maxed for long periods of time while the other 7 sit idle. Meanwhile the guest machine sits with the processor maxed and showing the hourglass for long periods.
What else would cause this behavior?
R
Re: number of procesors wrong in Win 2008 Guest
Posted: 29. Sep 2011, 16:06
by mpack
What VM settings were used while the Windows guest was being installed? I'm thinking in particular of IO APIC setting (what was it then, what is it now), and number of CPUs at install time.
Re: number of procesors wrong in Win 2008 Guest
Posted: 29. Sep 2011, 19:09
by Rastus
The VM was initially created on a Mac Pro and I it had either 2 or 4 processors enabled at that time. The IO APIC was on and has not been changed.
The VM was exported to a USB external drive and then imported onto the current 8 core machine. For the purposes of increasing the performance (we thought) the number of processors in the VirtualBox setup was increased to 8.
When I look in the Win 2008 guest now, the system says "Advanced Configuration and Power Interface (ACPI) PC" I have noted several mentions of HALu in the forums in the case of folks with similar problems and was wondering if I should try to change the HAL as suggested in some of the other threads. If so, should I change it to "ACPI Multiprocessor PC"?
R
Re: number of procesors wrong in Win 2008 Guest
Posted: 29. Sep 2011, 22:47
by Sasquatch
The kernel that is currently selected should do just fine, we use the same on our terminal server running with 4 cores. Now what is important is that the OS was installed with at least 2 cores assigned, and not started with 1, then changed to 2 or 4. That would mess up the kernel and you need to use the HALu thing.
To verify you got the CPUs going properly, open the Guest task manager, to go the Performance tab and make sure that each CPU core has it's own graph (it's in the view menu). That will show you the load on the cores in the VM.
As for the appearance of just one core going 100% and the rest idle, it would indicate that the application is single threaded. It cannot use more than one core for it's task. So it doesn't matter if you have 1 core, or 32, a single threaded process/program will not go faster.
Re: number of procesors wrong in Win 2008 Guest
Posted: 29. Sep 2011, 23:18
by Rastus
OK,
there is just 1 graph in the performance monitor.
I am assuming that means that I have to use HALu to modify the HAL.
I further understand from your post that I should probably install the same HAL as is already installed but the current copy may be corrupted and only allowing 1 processor to work.
Do I need to mess with the IO APIC setting?
Am I further to understand that even though the device manager can see the 8 processors in it, if they do not have individual graphs under the resource monitor, they are not being used by the system?
Just trying to get a good handle on it before I take the server down.
R
Re: number of procesors wrong in Win 2008 Guest
Posted: 29. Sep 2011, 23:25
by Sasquatch
If you set SMP, then everything required for it is set automatically, so no need to do things with the VM settings.
Now, with task manager, are you sure you set the view to show one graph per CPU/core in the CPU History? If you don't see other options than just one graph for one core, then it means you need to do the HAL thing. But, performance may not be optimal after it. If you can do it, reinstall Windows in the same VM. It will install with the right amount of CPUs and set itself with HAL for the proper amount of cores.
Re: number of procesors wrong in Win 2008 Guest
Posted: 29. Sep 2011, 23:33
by Rastus
Well, the Guest VM has a BIG MS SQL database and application on it. Can I just put in the windows 2008 disk and do a reinstall without having to to a clean reinstall and then reinstall all of the other applications too?
Re: number of procesors wrong in Win 2008 Guest
Posted: 30. Sep 2011, 19:57
by Sasquatch
Then you're better off doing the HALu thing. But you can always make a backup of the things and restore them later. Do what you feel is best.
Re: number of procesors wrong in Win 2008 Guest
Posted: 30. Sep 2011, 22:47
by vbox4me2
As a sidenote, database engines like sql and mysql in a virtual environment must have access to the Host cpu's (smp/vt-x required) with a ratio, ea. on 4 cores assign 2, on 16 cores no more then 4, and should be clustered between 3 nodes (3 x number of cores between all nodes).
On a minimal clustered 4 or 8 core Host 3x2 cores.
On a maximal clustered 16 core Host 3x4 cores.
On a super maximal clustered 32 core Host 3x8 cores.
Without clustering and going above recommended cores you will NOT ever get the performance your after in a virtual environment.