Performance Evaluation of Xen Vs. OpenVZ
An anonymous reader writes "Compared to an operating-system-level virtualization technology like OpenVZ, Xen — a hypervisor-level virtualization technology that allows multiple operating systems to be run with and without para-virtualization — trades off performance for much better isolation and security. OpenVZ's performance advantage due to running virtual containers in a single operating system kernel can be significant. A performance evaluation study (PDF) done by researchers at the University of Michigan and HP labs provides insight into how big a performance penalty Zen pays and what causes the overheads (primarily L2 cache misses)." From the report: "We compare both technologies with a base system in terms of application performance, resource consumption, scalability, low-level system metrics like cache misses and virtualization-specific metrics like Domain-0 consumption in Xen. Our experiments indicate that the average response time can increase by over 400% in Xen and only a modest 100% in OpenVZ as the number of application instances grows from one to four... A similar trend is observed in CPU consumptions of virtual containers."
[Xen]... "trades off performance for much better isolation and security."
No kidding, that's why I use it! Xen's performance ain't so bad. Show me a better performing virtualization solution that matches or bests Xen's isolation security - then we'll talk.
Zen's performance issues were fixed by Avon, under Orac's guidance.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
Hypervisor — the software that makes the virtualization happen... sometimes means virtualization that runs on bare-metal, rather than under a host OS.
Paravirtualization — I think this just refers to the cases where the guest OS is modified/recompiled to run work without needing to run in Ring 0, and instead changes those to be explicit calls to the virtualization software.
So translated, I think that means "virtualization software that runs on bare-metal, both using unmodified guest OS's, and modified guest OS's."
As somebody that actually has experience setting up and running virtualized systems (I work for a web hosting company) let me add my two cents here.
OpenVZ is ok if all of your child environments run the same OS and you don't care about them stealing each other's resources. We constantly have problems with customers overloading their VPS and causing problems with the other environments, this doesn't happen with Xen. I've fork bombed child environments and caused the load to spike to over 700 until it crashed, dom0 and the rest of my domUs just kept running like nothing was even happening.
OpenVZ also wins if you want to oversell hardware, Xen doesn't have "burstable" memory like OpenVZ does. Personally I prefer Xen for the jailing that it does and you can also run multiple OSes at the same time. I have a server at work that's running CentOS, Windows 2003, Windows Longhorn, and Gentoo all at the same time, OpenVZ only lets you run Linux on Linux.
Does it run multiple instances of Linux?
Nothing like a virtualization comparison that ignores the 800 guerilla that is VMWare. How do the learning curves, performance and security of these products compare with VMWare? Why should someone who is satisfied with VMWare consider other alternatives?
the clock on the wall says 4 til 7
Here are a few talking points based on my experiences with both Xen and VMWare (ESX Server & Workstation).
1. Cost - no contest, xen wins hands down $0 vs $5000/cpu.
2. Performance - xen wins noticably, i can get away with running 8 virtual machines with 1/4 the hardware that VMWare required for 6.
3. Capabilities - VMware versions ESX GSX and up beat Xen in ease of use and flexibility, anything less and Xen wins. Xen does have a quicker live migration capability, but falls short on conencting external hardware to the virtual machine (something that is trivial in VMware).
4. Stability - about even, maybe Xen. I've seen ESX crash once, and have never seen Xen crash.
5. Ease of use - VMWare no question. Theres a learning curve to Xen and setting up new VM images is a pain. (which is disappearing) There are fantastic tools for VMware that will let you manage virtual machine creation and even migration from a physical box. (some of which can be used to feed xen too =))
The bottom line. A Xen setup (using open source version) that can easily run 12 VMs costs about $2,000 on DIY hardware. A VMWare server/software combo to do the same? about $30,000. Assume an additional 40-80 hours of learning to get up to speed with Xen vs VMware.
The comments above cover the open source / free version of Xen. I have no experience with the commercial Xen offerings.
Personally i'm Xen biased due to cost.
It's not always about performance; Xen gets each their separate kernel. This means that special adjustments can be made for a virtual machine. Also, with Xen you could easily experiment with an upgraded kernel for the virtual machines, without rebooting the main (host) machine. Finally, I for myself like the fact that you have your 'own' kernel. It feels much more like a real machine. Especially with a bootloader like pygrub, which is employed in RedHat AS and CentOS, the kernel inside the virtual machine can even be upgraded by yum running inside the VM.
Note that I'm not a Xen apologist, I'm not denying a performance hit here.
8 of 13 people found this answer helpful. Did you?
OpenVZ is somewhat like FreeBSD Jails. It provides some separation which makes it easier to manage multiple complex servers. For example, it makes sense to run a web server and mail server in two separate virtual machines, since it keeps the configuration independent.
Xen, is like VmWare or Qemu and provides an independent virtual machine for each system. These systems can be anything at all: Windows, Linux, BSD, whatever.
Performance wise, OpenVZ is bound to win, because it is a different solution to a different problem.
Excuse me, but please get off my Pennisetum Clandestinum, eh!
I guess I have to correct you here. Xen trades off performance for an ability to run different kernels, and this has nothing to do with either isolation or security. So, Xen is good when you want to run different kernels (different OSs).
OpenVZ, on the other hand, employs a single kernel model, which makes it suitable for you if you only want to run Linux (different distros are possible, different kernels are not). But in this very field OpenVZ is way better than Xen -- not only in terms of performance, but also scalability, manageability, density, and usability.
Speaking of isolation and security, OpenVZ runs on thousands of ISP/HSP servers, and everyone can buy a VE (Virtual Environment) for about 10-15 bucks a month. There one have a root account and can try to exploit the system in all the possible ways. So far those HSPs are not out of business yet, that practically proves the system is secure and properly isolated. More to say, security comes from the constant care, and we (OpenVZ team) do care for security a lot, see this blog entry for some more details.
-- Kir Kolyshkin, OpenVZ project leader.