Qemu vs VMWare

Marko Vojinovic vvmarko at gmail.com
Tue Oct 27 01:58:13 UTC 2009


On Monday 26 October 2009 16:37:17 Phil Meyer wrote:
> On 10/25/2009 03:05 PM, Marko Vojinovic wrote:
> > (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!

Well, this is also a very informative read. Thanks! :-)

However, it seems that the open-source solution for virtualization on a 
processor without the vmx flag does not exist. Ok, you can use qemu, but it is 
on the bottom of the performance pile, as you adequately put it. Proprietary 
solutions offer much better performance on such hardware.

This situation seems to be the same as the situation with graphics card 
drivers --- if you are not lucky to have compatible/supported hardware, you 
can either opt for proprietary solution (and hope for the best), or live with 
a severe performance penalty, much worse than just hardware limitations. This 
is sad.

<rant>
And guess what I just found out? My office desktop, purchased three months ago, 
has an Intel Core 2 Duo processor, the E7400 variant, which also does not have 
vmx flag. The things runs on 2.8 GHz, has 4GB of ram, and qemu literally crawls 
on it. I mean, my laptop (with a T5250 core 2 duo, 1.5 GHz, 2 GB ram) is kind 
of oldish, I admit, but this desktop is a brand new machine! So hardware 
virtualization support is not just a case of having obsolete hardware, but 
rather a case of not having *very carefully chosen* hardware.

"Very carefully" means going into a computer store and telling the salesman 
that I want a computer with a Core 2 Duo processor, model number E7400, but 
with a "part number" being "AT80571PH0723ML", rather than "AT80571PH0723M" 
(same but without a L at the end). The latter is out of the question because 
it doesn't have vmx flag and VT support[1]. Is a typical salesman able to check 
this when he hands out a box to you? He is probably not even aware that there 
is more than one model of core 2 duo, let alone variations in the final letter 
of some serial numbers...

One of the other posters in this thread was surprised to hear that there 
exists a core 2 duo processor out there without VT support. Well, guess what? 
I am "lucky enough" to have *two* such processors in two of my boxes. And one 
of them is as new as it gets, purchased only three months ago (not by me, 
admittedly, I'd opt for AMD, but unfortunately nobody asked me...).
</rant>

Ok, time to try out VirtualBox. Guess it cannot get worse than qemu, so I'm 
optimistic. ;-)

Best, :-)
Marko

[1] 
http://en.wikipedia.org/wiki/List_of_Intel_Core_2_microprocessors#.22Wolfdale-3M.22_.2845_nm.29





More information about the users mailing list