PV vs PVHVM on next XenServer

Here is a new set of benchmarks using latest XenServer Beta (Dundee Beta 2), comparing Xen in PV and PVHVM modes1. And on a decent hardware (Haswell CPU with AVX2 instructions).

Last benchmarks we made 2 years ago gave roughly +15% boost on PVHVM vs PV for intensive CPU/memory cases. Is it still true?

Testing protocol

Hardware

  • Intel Core i5-4460 (with AVX2 instructions)
  • Gigabyte GA-H97-N (mini-ITX)
  • RAM: 8GiB

Software

  • XenServer Dundee (beta 2)
  • AVX2 active
  • Xen 4.6
  • Guests running Debian Stretch (current testing)
  • Comparing PV mode vs PVHVM with XSAVE instruction

Benchmarks

All those results can be found on Phoronix benchmarking website.

Let's start with the least non-surprising test:

OpenSSL is not at all influenced by virtualization mode. It's a draw here!

What about PHP?

There is a small difference, around 4% better for PVHVM.

This time, compression using 7zip:

PVHVM first, by a 6% difference.

Let's compile a kernel:

A visible gap now, PVHVM wins by a large 16% boost.

Now, ladies and gentleman, the real deal: Apache. The number of static pages served during this benchmark:

Wow. PVHVM is 41% better than PV.

VS older benchmarks

Can we compare with the previous benchmarks? Not really.

CPUs are not from same generation (Ivy Bridge vs Haswell), but in fact pretty close: see the comparison on Intel ARK.

The main difference is more on software side: XenServer 6.2 vs Dundee beta 2, and a recent Debian distro. RAM, CPU number are the same. Tested software version are slightly different too. That's a too much to compare directly.

But what about the difference between PV and PVHVM between those old benchmarks and the new ones?

Here the chart about the new and the old delta (in %) between PV and PVHVM, on CPU/Memory intensive tasks:

Conclusion

  • PVHVM is better in any situation (at worst the same, at best 40% better)
  • The gap is bigger and bigger in favor of PVHVM.

That's not really surprising: new hardware tends to include more and more instructions to assist virtualization. So in fact, the "cost" of virtualization (in terms of performances) is reduced.

Addendum: vs bare metal

Some people asked results of bare metal compared to the previous benchmarks. So compared to PVHVM, bare metal is slightly faster at various levels:

  • Kernel compilation time: 4% faster
  • PHP: draw! (<0,2%)
  • 7Zip: 2% faster
  • Apache: 9% faster
  • OpenSSL: can't run the test, the OpenSSL tarball is somehow missing.

  1. you can read more about virtualization modes on the Xen wiki.