Ubuntu – My client’s solution of a Windows SBS 2011 VM on an Ubuntu host and VirtualBox is pinning the host CPU

cpu-usageUbuntuvirtualboxvirtualizationwindows-sbs-2011

Here's my situation, I've got a client hosting two servers (one VM), with the host providing VMware Zimbra, the other Windows Small Business Server 2011. Unfortunately, the person before me had configured this setup as follows.

Host:

  • Ubuntu Desktop Edition 10.04 (I know, again, not my choice) running VMware Zimbra
  • 8GB of RAM
  • On-board RAID1 of two 320GB Seagate Barracuda drives for the OS
  • Software RAID5 of four 500GB WD Caviar Black drives on MDADM for bulk storage (sorry, I don't know the model #)
  • A relatively competent quad-core Intel Core i7 CPU from the Nehalem architecture (not suspicious of this as the bottleneck)

Guest:

  • Windows Small Business Server 2011
  • 4GB of RAM
  • Host-equivalent CPU allocation
  • VDI file for OS hosted on the on-board RAID, VDI file for storage hosted on the on-board RAID

For some reason when running, the VM locks up when sitting nearly idle, and the VirtualBox process reports values of 240%+ in top (how is that even possible?!). Anyone have any ideas or suggestions? I'm totally stumped on this one.

Happy to provide whatever logs you'd like to take a look at. Ideally I'd drop VirtualBox and provision this with VMware Workstation, but the client has objected to the (very nominal) costs involved. If hardware needs to be purchased to help, it will be, but we're considering upgrades a last-resort at this time.

Thanks in advance! *fingers crossed*

Best Answer

top is reporting CPU values based on percentage per CPU. Since your Core i7 has 8 CPUs (4 hyperthreaded cores) the number could theoretically go up to 800%. So 240% is not that big a deal.

To find out what the VM is really doing, go into the guest and look at Task Manager, Perfmon or any other Windows diagnostic tools. Most likely it's running scheduled tasks or something equally mundane.

As for improving the system, you need more RAM, and you need it yesterday. Whatever this low-end hardware is capable of, max it out, and give more RAM to the guest. Recent Core i7 desktop boards max out at 32GB or 64GB; you shouldn't use anything less than 32GB unless the motherboard just won't handle it. (Otherwise the next guy is going to curse you in his turn...) First-gen Core i7 boards (which you might have) will max out at 12GB or 24GB.

For changing out the virtualization, you can do so and it would almost certainly be a good idea. KVM was recommended by a commenter and I will concur with that. It's pretty trivial to V2V from VirtualBox to KVM, though you'll need a few hours maintenance window. If you can, update Ubuntu to 12.04 LTS so you can get enhancements and fixes provided by more recent versions of KVM. And remember to install virtio disk and network drivers in the guest.