VM is unbearably slow

Discussions related to using VirtualBox on Solaris hosts.
Ramshankar
Oracle Corporation
Posts: 793
Joined: 7. Jan 2008, 16:17

Re: VM is unbearably slow

Post by Ramshankar »

susu.exp wrote:
Ramshankar wrote: A VCPU runs in its own thread on the host, multiple VCPUs per VM means several VCPU threads on the host. VirtualBox doesn't pin down VCPU threads to host CPU cores and thus they are subject to the host scheduler. Yes, certain guest applications can behave differently when running with SMP but that usually also applies when they run on the host too but the effect might be amplified more (e.g. "iperf"). Adding more VCPUs to a VM is not a guarantee for better performance.
Thanks for the clarifications. 8)
It seems like I could run more guests if I reread Chapter 10... :D

Is it also possible to use priocntl to manually adjust Solaris' scheduling so that one can run more concurrent guests/instance, or more instances in separate zones? IOW, "optimize" or "tweak" Solaris or a Zone for VBox? Would it be worth the time to consider on Solaris 11, which is arguably the optimal VBox platform already? :mrgreen:
The scheduling isn't particularly a problem. There are certain things with guest SMP that just cause more overhead in a virtualized context and there isn't easy ways around it. However, our guest SMP performance isn't really optimized to the max and we're looking to improve things wherever we can. I wouldn't recommend trying to alter the scheduler behaviour of Solaris as it isn't a single area that degrades performance. Usually getting a recent CPU (with features like Nested Paging, Unrestricted guest execution pushing more work to the hardware) and decent memory is more practical than playing with near negligible scheduler tweaks.
Oracle Corp.
susu.exp
Posts: 31
Joined: 15. Feb 2012, 09:01

Re: VM is unbearably slow

Post by susu.exp »

Ramshankar wrote:
susu.exp wrote:
Ramshankar wrote: A VCPU runs in its own thread on the host, multiple VCPUs per VM means several VCPU threads on the host. VirtualBox doesn't pin down VCPU threads to host CPU cores and thus they are subject to the host scheduler. Yes, certain guest applications can behave differently when running with SMP but that usually also applies when they run on the host too but the effect might be amplified more (e.g. "iperf"). Adding more VCPUs to a VM is not a guarantee for better performance.
Thanks for the clarifications. 8)
It seems like I could run more guests if I reread Chapter 10... :D

Is it also possible to use priocntl to manually adjust Solaris' scheduling so that one can run more concurrent guests/instance, or more instances in separate zones? IOW, "optimize" or "tweak" Solaris or a Zone for VBox? Would it be worth the time to consider on Solaris 11, which is arguably the optimal VBox platform already? :mrgreen:
The scheduling isn't particularly a problem. There are certain things with guest SMP that just cause more overhead in a virtualized context and there isn't easy ways around it. However, our guest SMP performance isn't really optimized to the max and we're looking to improve things wherever we can. I wouldn't recommend trying to alter the scheduler behaviour of Solaris as it isn't a single area that degrades performance. Usually getting a recent CPU (with features like Nested Paging, Unrestricted guest execution pushing more work to the hardware) and decent memory is more practical than playing with near negligible scheduler tweaks.

Point taken. Sr. Pareto. :) Thank you for the guidance.

And since no one can really tell me what my VBox host can do but my host and guests. And since it's so easy to preserve and protect my existing environment, I think the only decent approach here is to find out for myself as a first step. :mrgreen:

:idea: It may be a good excuse to mingle with DTrace as well...

BTT
Post Reply