The Kernel-based Virtual Machine (KVM) has been in the mainline Linux kernel since Linux 2.6.20 in early 2007 and over time it has become one of the most widely used virtualization platforms on Linux. Ubuntu uses KVM, Fedora uses KVM, and Red Hat Enterprise Linux has even switched from Xen to preferring KVM, among others. While occasionally we deliver new KVM virtualization benchmarks, we decided to investigate how the performance of KVM virtualization has changed -- if at all -- over the past two years for better or worse.
We tested each of the Ubuntu releases from Ubuntu 8.04.4 LTS up through the newest Long-Term Support release, Ubuntu 10.04. With each release we first measured the performance of the host installation, then the performance of an Ubuntu 8.04.4 LTS virtual machine, and then the performance of the matching host operating system when virtualized. In terms of features, the Kernel-based Virtual Machine has improved over time, as it was not even until mid-2007 that it supported SMP guests and other virtualization features. Red Hat has also built KVM virtualization into their libvirt and virt-manager stacks that first appeared in Fedora 7 and then made their way into Ubuntu 8.04.
Our test system consisted of an AMD Opteron 2384 Quad-Core processor that supports AMD virtualization, a Tyan Thunder S2927 motherboard with NVIDIA nForce 3600PRO Chipset, 4GB of system memory, a 64GB OCZ Agility EX SSD, and an ATI Radeon HD 4870 graphics card. Below are some of the key package details from each of the tested Ubuntu releases.
OS: Ubuntu 8.04, Kernel: 2.6.24-26-generic (x86_64), Desktop: GNOME 2.22.3, Display Server: X.Org Server 188.8.131.52, Display Driver: cirrus 1.1.0, OpenGL: 1.4 (2.1 Mesa 7.0.3-rc2), Compiler: GCC 4.2.4, File-System: ext3
OS: Ubuntu 8.10, Kernel: 2.6.27-7-generic (x86_64), Desktop: GNOME 2.24.1, Display Server: X.Org Server 1.5.2, Display Driver: cirrus 1.2.1, OpenGL: 2.1 Mesa 7.2, Compiler: GCC 4.3.2, File-System: ext3
OS: Ubuntu 9.04, Kernel: 2.6.28-11-generic (x86_64), Desktop: GNOME 2.26.1, Display Server: X.Org Server 1.6.0, Display Driver: cirrus 1.2.1, OpenGL: 2.1 Mesa 7.4, Compiler: GCC 4.3.3, File-System: ext3
OS: Ubuntu 9.10, Kernel: 2.6.31-14-generic (x86_64), Desktop: GNOME 2.28.1, Display Server: X.Org Server 1.6.4, Display Driver: cirrus 1.3.1, OpenGL: 2.1 Mesa 7.6, Compiler: GCC 4.4.1, File-System: ext4
OS: Ubuntu 10.04, Kernel: 2.6.32-21-generic (x86_64), Desktop: GNOME 2.30.0, Display Server: X.Org Server 1.7.6, Display Driver: cirrus 1.3.2, Compiler: GCC 4.4.3, File-System: ext4
On the line graphs that follow, the "Host" line indicates the performance of the respective Ubuntu Linux release, the "Hardy VM" line shows the KVM virtualization performance on the respective Ubuntu release when Ubuntu 8.04.4 LTS is being virtualized, and then "Matching VM" shows the performance of the respective Ubuntu release when that same Ubuntu release version is being virtualized with KVM.
Via the Phoronix Test Suite we ran Apache, PostgreSQL, PostMark, Unpack-Linux, POV-Ray, C-Ray, OpenSSL, John The Ripper, FFmpeg, LZMA, Bullet Physics Engine, NAS Parallel Benchmarks, and MAFFT.