VM performance (vmware, virtualbox)
Recently I’ve been doing automated puppet builds using VirtualBox as my VM (I have an old laptop with no hardware virtualisation support). This worked fine but now that I need to run two VMs, the laptop is crawling. So I finally decided to do some benchmarks. Hopefully I’ll do these on my desktop (which does have hardware support) and add Xen (both SVM and HVM) as well as kvm.
I’ll put the usual disclaimer here that this is a benchmark – your scenario will be different. I was interested in two things – how long my Debian preseed/puppet build takes (this hits CPU, memory and disk) and how much CPU the VM takes once it is built.
The VMs have all been configured with 2GB disk, 192MB RAM and have their network card bridged onto an internal Linux ethernet bridge. My laptop is a 1.7GHz Pentium-M with 1GB RAM – it was left idle during the benchmark process. Other VM kernel modules and processes were stopped. I should say that as part of the puppet process there is a check for SSL certificates which occurs every 30seconds – so if one run hits this at 10:01 and another hits it at 10:29 then they may both stall until 10:30.
* VMware Server (v1.0.3): 14:03 to build, 4.2% user, 2.5% system = 6.7% CPU total when running
** another run showed the same numbers
* VirtualBox (v1.5.0): 11:46 to build, 13.2% user, 19.8% system = 33.0% CPU total when running
** 12:07 on the second run
As you can see – VirtualBox really chews the CPU just to run the system. One thing I noticed was that whilst VirtualBox kept good time (it didn’t match the source system but at least it kept pace), VMware was _way_ out – i.e. 1/2 to 1/3 of the host box. This was before I put vmware tools on.
I’d put qemu (and more importantly kqemu) numbers up, but I can’t get the darn thing to PXE boot
I can boot a Debian CD which can DHCP fine:
sudo qemu -boot d -cdrom /dev/cdrom -hda preseed.img -net nic,macaddr=08:00:27:F8:D0:10,model=rtl8139 -net tap,script=qemu-ifup
However if I try using PXE then I can’t see a single packet (using either the raw PXE code or a CD from rom-o-matic):
sudo qemu -option-rom pxe-rtl8139.bin -hda preseed.img -net nic,model=rtl8139,macaddr=08:00:27:F8:D0:10 -net tap,script=qemu-ifup
sudo qemu -boot d -cdrom eb-8139.iso -hda preseed.img -net nic,macaddr=08:00:27:F8:D0:10,model=rtl8139 -net tap,script=qemu-ifup
It merely responds:
Cable not connected or other link failure
qemu-ifup is just:
\#!/bin/sh
brctl addif br0 $1
ifconfig $1 up
Posted: September 9th, 2007 under Linux, Work.
Comments: none
Write a comment