Re: Qemu vs VMWare

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/25/2009 03:05 PM, Marko Vojinovic wrote:
Hi everyone! :-)

I wish to share my first hands-on experience with qemu, compare it to vmware
player, and (since I'm highly disappointed with the performance difference) ask
is there anything that can be done configuration-wise to improve the user
experience under qemu.

Basically, my motivation to try out qemu in the first place is the not-so-great
support from vmware when it comes to kernel modules, updating Fedora etc. The
idea is to make all these issues go away by going with the open source
solution for virtualization. Naively, I expected more or less equivalent
performance and/or set of features. But qemu turned out to be a very big
disappointment:

(1) Windows XP guest under qemu appears to be an order-of-magnitude slower
than equivalent vmware guest. I haven't measured precisely, but by counting
the seconds for the same operation (open a window or such), qemu appears to be
roughly 10 times slower! Why is it *that* bad?

There are several methods for accelerating a Virtual Machine. One of those methods uses the relatively new CPU based 'switch' that allows the CPU itself to govern, or separate, certain things.

However, that is not the only way. Virtual Machines have a long and storied history, and much of what we see today originated on systems like the Cray super computer. The problem is that we now want Virtualization to be a commodity, it needs to be cheap, and it needs to run on hardware that is not designed for it.

VmWare uses a proprietary kernel module to do the hardware emulation.

VirtualBox from SUN uses a proprietary kernel module to do the hardware emulation. Although SUN has a 'free' version, SUN's licensing prohibits it from being distributed freely.

Xen uses a special version of the Linux kernel to create a Domain 0 that is most similar to what used to be done on the Cray and other super computers. There are several good references online to detail the differences in Hypervisors, but here I am just hitting a few points.

The deal that Novel did with MicroSoft caused Xen to lose a lot of developers, and it almost fell completely off the IT radar. If not for a lot of legacy installations, it is my opinion that Xen would have disappeared all together.

There are other types of virtualization that don't need a hypervisor at all. One of these types is called a container type VM. OpenVZ is really a very good implementation of a container type VM.

Now, we have to consider and separate hardware emulation, the hypervisor, and the bare iron.

Qemu is a set of tools that can provide various levels of hardware emulation. By itself, it can emulate a complete low end PC.

KVM is a kernel module written by the Linux kernel development team that uses the new VM 'switch' on modern intel and AMD CPUs to accellerate hardware emulation on real hardware. To over simplify, you can think of KVM as allowing the kernel to 'cut off' a CPU and chunk of memory for a VM to use natively.

Qemu can be built to take advantage of the hardware support provided by the KVM kernel modules. That version of Fedora is called: qemu-kvm.

Xen also uses qemu for its hardware emulation, but not the KVM parts. That may change as Xen is finding its way back into the mainstream kernel.

Performance wise, its a toss up between these guys based upon several factors, especially application.

However, qemu alone with no hardware support is definitely on the bottom of the performance pile.

Qemu with KVM support is almost always on the high end of the performance pile for general CPU/Memory based applications.

Other things to consider: Xen and VirtualBox can 'expose' a real PCI card to the VM. KVM is working on this feature actively, but its not there yet.

File system type and disk emulation can also vary widely. Using a file as emulated disk in writeback mode vs writethough mode can be order of magnitude different in performance depending upon your specific hardware.

So consider your application, and choose wisely.

Recommendations:

Windows for development: KVM
Windows for Graphics: VirtualBox with openGL passthrough to VM.
Windows for general purpose: VmWare for more driver support.

Linux for development: KVM
Linux for production ISP: KVM

Today -- Linux general purpose production systems: Xen
Tomorrow -- Linux General purpose: KVM

RHEL 6 will be all about KVM.

Good Luck!

--
fedora-list mailing list
fedora-list@xxxxxxxxxx
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines

[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux