# VirtualBox slow on Dell PowerEdge 1950



## PacketMan (Apr 15, 2016)

Not sure where I should put this discussion since so many points of discussion involved.

With reference to this:
https://forums.freebsd.org/threads/54413/


Host OS - FreeBSD 10.2-RELEASE
Port - emulators/virtualbox-ose version 4.3.36
Guest OS #1 - FreeBSD 10.3-RELEASE

All seems fine, until I run `synth upgrade-system` for the port ports-mgmt/synth.  Synth itself runs fine, but when it gets into compiling ports it is painfully slow. How slow?  On the same server bare metal OS install, the compile line counter will increment fast, say the number increases by a factor of a few dozen every second or so (depends on the build job).  When doing this on a virtualbox instance, the counter increments about a count of 1 or so, every minute or so.  On bare metal synth will pin all cpu cores to 0% idle. When done inside virtualbox the cores sit around 60% idle.

I have played around with some of the virtualbox vm instance settings (motherboard & processor) but my guess is its simply due to the fact that the Harpertown processors lack the newer virtualization extensions.

I'll keep tinkering with settings, and will start into finding log files to read (assuming there are some), but was wondering if someone can tell me if my issue is simply due to me using this older hardware, or is there some key configuration I need to do? Or maybe virtualbox itself is simply not up to scratch?  Hoe many of you folks use virtualbox and what do you think of it?

I might try running vmware ESXi (instead of FreeBSD as host OS) but it looks like only a really old version (4.x.x stuff) is compatible.  Maybe I need to convince the missus to let me buy a new server. This is for learning lab purposes, not anything 'business mission driven'.

Thanks again all.


----------



## SirDice (Apr 15, 2016)

Note that on bare metal you might be using all cores whereas the VM may not have all cores assigned. If the bare metal has, for example, 24 cores and the VM only has 4 it's obviously going to be a lot slower.


----------



## PacketMan (Apr 15, 2016)

Yep I realize that.  I do indeed have all cores assigned, and when synth is compiling, `top -C -P -s 5` indicates all cores are 'taking work', but they don't go down to 0% idle like when running bare metal.  They sit around 60% idle.  I can keep tinkering around trying to tune some settings, but I found other forums talking about the same performance issues with the same server.  Some discussed virtualbox on linux, and some discussed vmware products being used.  But none seem to firmly confirm that the root cause was due to lack of virtualization extensions with the cpus.  The guest instance of FreeBSD boots up pretty darn fast, but there seems to be some sort of 'bottleneck' with its ability to use those cpus to the max via virtualbox.


----------



## SirDice (Apr 15, 2016)

The 'bottleneck' might be caused by the emulation layer of the I/O controllers. It might take a little longer for the files to load which causes the CPUs to never reach their full potential. They're simply waiting for the data to arrive.


----------



## PacketMan (Apr 15, 2016)

Okay, that makes sense. But would that be caused by virtualbox itself or by lack of virtualization extensions in the CPUs?  If I can tune virtualbox I'll certainly try to read up on it.  I want to get a lab up and running for study purposes (Software Defined Networking) and don't want to spend all kinds of time foolling around with this when the issue is using old hardware and the solution is simple: spend money on new hardware......EDIT (and I'd like to keep using FreeBSD as host OS, and virtualbox or some other virtualization code; need to run Linux kvm on top for a bunch of the lab stuff.)

Thanks SirDice.


----------



## PacketMan (Apr 16, 2016)

I built a new instance using SAS controller in virtualbox and pretty sure I got my performance acceleration settings right.  `vmstat` in my vm instance shows me the 'b' column counter becomes a non-zero value, usually 1 or 2.  Also I noticed virtual CPUs are pinned near 0% idle, but real CPUs are sitting happy at 60% idle.  I am pretty sure its due to lack of extended page table support in the Harpertown processors.  Gonna try popping my SAS drives into a newer machine that has 3.5" slots, and see what happens.

Thanks for your help everyone, SirDice especially.


----------

