Web server benchmark: simple, static content
To benchmark the web server performance under simple, static content, I used the default Apache's test page – the “It works!” page. While you can argue that this test is unrealistically simple (and you are right), it should give us a view of pure Apache and HTTP performance. Let see the results:
While Xen is really slow, the other hypervisors perform quite similarly here. Why Xen is so slow? While is seems to have a lower CPU efficiency, this thing alone is not sufficient to justify this bad show. As Apache creates a new thread for each new connection, it is entirely prossible that the real culprit here is a very low speed in creating new threads. If this is true, Xen shoulds exhibit very low performance in massive multithreaded environment. Later, in the MySQL benchmarks (another multithreaded process), we will check this supposition.
What about CPU load?
VMware and VirtualBox have the lower CPU usage, but KVM and Xen are not too much behind; however, remind that Xen results are the lowest by a great factor.
What is intriguing here is to note the different distribution of user time and kernel time (in which syscall time and the IRQ time are also included). VirtualBox seems to be the best user-level hypervisior, but it lag behind in kernel-level CPU time. At the other end, VMware has great kernel-level CPU time but the worst user-level time.
What can be the cause? Generally, kernel time is dominated by syscall time, but in some case it can also be greatly influenced by IRQ servicing time. We have already noted that VMware has very low IRQ servicing time, so it is not surprising that it was the faster machine. All in all, these results maps quite nicely with the ping flood results: Xen is the slowest machine, while VMware is the fastest.
What about disk load?
Not surprisingly, KVM cause the most load from the disk. Xen cause a low load but it perform at a fraction of the other hypervisors. All in all, the most efficient virtual machine is VirtualBox, followed by VMware.
UPDATE: a recent article comparing KVM vs VirtualBox can be found here: http://www.ilsistemista.net/index.php/virtualization/12-kvm-vs-virtualbox-40-on-rhel-6.html