[OT] Virtualization (WAS: UNIX V7)

Liam Proven lproven at gmail.com
Sun Jun 14 08:51:29 CDT 2009

2009/6/13 Ray Arachelian <ray at arachelian.com>:
> Liam Proven wrote:
>> My guess would be that this is a little protective colouring of the truth.
>> A VMware guest only delivers about 80% of the performance of the raw
>> hardware, because all the kernel code - all the core OS itself, all
>> device drivers etc. - are running in a software emulator. And on a PC,
>> this is a lot more critical than on a mainframe, because PC software
>> is far more CPU (and graphics) intensive.
>> Run a VM under a VM, this would be even slower - you'd only get about
>> 64% of the performance and my guess is that if it worked at all,
>> VMware feel it would make their product look bad.
> There is VMWare ESXi which is also freely available for download, that
> runs on the raw hardware.

It does, but it's something of a con. It's not a bare-metal
hypervisor, it's a very-cut-down copy of Linux with some proprietary
VMware kernel modules that do the virtualising. There is an ongoing
argument with WMware that this means they're linking to GPL code and
must release the source to the actual hypervisor, which of course they
won't do. The company adamantly maintains that Linux is used as
nothing more than a bootstap loader, like MS-DOS was for Netware 3,
but they can't prove it without publishing code and they won't do

> So while there'll still be some overhead, you remove most of the
> overhead of the host OS - but of course you're replacing the host OS
> with a lighter weight one that's designed just for running guest OSs.

That's not a very significant part of the overhead - it's the actual
software emulation that saps 20% of the performance.

> Either way, using VMWare tools on the guest is an important part of
> running VMWare - if you want performance.
> Otherwise, VMWare has to emulate actual hardware devices, which is much
> more work than simply transferring the I/O requests to the hypervisor.

It still does that. The VMware tools provide cut & paste, filesystem
access, a free-tracking mouse pointer and so on, but the ring-0 CPU,
motherboard chipset, NIC, graphics card etc. are all still emulated.
The big-iron server editions of VMware do allow things like actual
physical hardware NICs and SCSI adaptors to be dedicated to VMs, and
then you'll get near-native performance on I/O, but the
80%-of-native-performance figure is a best-case /with/ all the tools
and extensions installed.

> There was some controversy over the Intel VT stuff - it turns out it
> does run slower than doing it in just software.

Swings and roundabouts. Some things are faster, some slower. The AMD
"Pacifica" virtualisation extensions are more capable than Intel's,
and include hardware remapping of page tables for virtual memory, but
there's still some stuff that VMware's decade-old, highly-optimised
code does better.

Myself, I prefer the architectural elegance of the hardware solution,
which also means much smaller, simpler hypervisors. The KV hypervisor
is a small Linux kernel module that does everything in one small
binary, for instance. Built by using bits of QEMU for VM setup and
config and so on, it's pretty simple.

> Most of what VMWare does is trap & emulate supervisor level
> instructions, but there are a few opcodes that it can't do this with -
> don't remember the exact ones, so what it does there is to scan the
> binary for those opcodes and replaces them.
> The biggest limitation I find to VMWare and stuff like it is memory.
> You really do need a lot of RAM to get usability. Not surprising.  If
> you want to run 2 or more Operating Systems at the same time, you need
> enough memory to make each OS and whatever Apps you plan to run under
> them not page.  If you can't do that, don't run things virtually.
> Typically there's enough CPU cycles, but not enough memory.  For most
> situations, but not all.
> As with everything, there's always a price to pay, but there are
> benefits too.

Oh, yes, indeed.

Liam Proven • Profile: http://www.linkedin.com/in/liamproven
Email: lproven at cix.co.uk • GMail/GoogleTalk/Orkut: lproven at gmail.com
Tel: +44 20-8685-0498 • Cell: +44 7939-087884 • Fax: + 44 870-9151419
AOL/AIM/iChat/Yahoo/Skype: liamproven • LiveJournal/Twitter: lproven
MSN: lproven at hotmail.com • ICQ: 73187508

More information about the cctalk mailing list