While benchmarks are a very difficult exercixe and as such the results must be considered carefully, they are still interesting to compare the respective performance between the solutions for different workloads.

This page will try to keep an eye on the relative performances of Xen and KVM. Until virtio is not part of the mainstream linux kernel, the tests will concentrate on performance on HVM systems, so the guest system will be an "unmodified OS".

12/02/2008

Thanks for Dan Berrange who pointed me on xen.org instead of xensource.com as a source of download for the latest Xen.

The tests consists of the compilation of a linux kernel 2.6.24 with allnoconfig (make allnoconfig && time make). The host hardware is a 1.86Ghz Intel Core2duo.

unmodified VM: 64bits Debian Lenny

The first two tests run the same Virtual Machine with an unmodified 64bits Debian Lenny.

  • Host is an opensource Xen-3.2 (from xen.org) with a Dom0 running a kernel-2.6.18-xen, Dom0 userspace is a 64bits Debian Lenny
run 1 2 3
real 2m26 2m19 2m20
user 1m21 1m22 1m21
sys 1m02 0m58 1m00
  • Host is a 64bits Debian Lenny with a 2.6.24 kernel and KVM-60
run 1 2 3
real 2m11 2m07 2m07
user 1m26 1m26 1m26
sys 0m45 0m40 0m40

paravirtualised VM: 64bits Debian Lenny with xenified kernel

The following test runs on the same hardware than the previous one.

  • Host is an opensource Xen 3.2 (from xen.org) with a Dom0 running a kernel-2.6.18-xen, Dom0 userspace is a 64bits Debian Lenny
run 1 2 3
real 1m34 1m33 1m33
user 1m17 1m18 1m18
sys 0m15 0m15 0m15

11/02/2008

For the following 2 tests, the system is an Intel core 2 duo 2.4Ghz w/ 2GB RAM running the latest available versions:

  • for Xen: opensource Xen 3.1.0 (from xen.xensource.com) + Dom0 kernel based on kernel.org 2.6.18
  • for KVM: kvm-60 on a 2.6.23

The guest used in both case is the exact same VM (non-paravirtualised 64 bit Debian etch with 256 MB RAM).

Guest system boot-up time

plateformtime in seconds
Xen 23
KVM 20

Kernel compilation benchmark

Time to compile a 2.6.24 allnoconfig

  • first try - cold cache
plateformreal timeuser timesys time
Xen 1m53 1m06 0m43
KVM 1m03 1m06 0m33
  • second try - w/ cache
plateformreal timeuser timesys time
Xen 1m52 1m07 0m43
KVM 0m56 1m07 0m31