Muli Ben-Yehuda wrote:
On Tue, Jul 04, 2006 at 04:17:04PM +0300, Michael Ben-Nes wrote:
If you have Hardware virtualization like Intel vt-x you can use Xen.
And the performance overhead is from 0.3% to 5% ( it will kick vmware butt )
These numbers are for para-virtualized guests, not fully virtualized
guests (and are somewhat in dispute in any case). Compute performance
with VT is reasonable; IO performance with VT is horrible.
Cheers,
Muli
I'm not sure this is 100% accurate.
There are two parts to this equation (para vs. fully virtualized host).
One is the use of some impossible to easily virtualize CPU commands on
normal pentium CPUs. The two workarounds are:
1. Tell the virtualized machine not to use them (para-virtualize)
2. Buy a CPU with extended virtualization support, which allows
bypassing the above problem.
Actually, there is a third workaround, but I'm not sure what it is. This
is what VMWare uses (at least in VMWare ESX, the hypervisor does that in
order to run Windows on non-VT machines).
I highly doubt that there is any significant performance problem between
the first two solutions. I can imagine that the third solution does have
some performance degradation.
Then there is the IO issue. Again, there are two possible solutions:
1. Emulate the DMA, IO and interrupt behavior of a real SCSI/IDE device,
and let the guest machine use the standard drivers.
2. Let the guest machine communicate directly with the host machine,
using the direct IO performance.
Option 2 is, obviously, much better, performance wise.
VMWare, for example, does #1 intelligently. It can emulate both an IDE
and a SCSI controller, and according to the guest OS you wish to install
it will recommend the IDE controller if there are no easy drivers for
the SCSI (say, if you install DOS or Windows 95), and the SCSI
controller otherwise (if you install Windows XP or Linux 2.6). This
allows it to provide better performance already.
It will also do #2, however. After the guest operating system is
installed, it will recommend you install "VMWare Tools". This will
install various drivers on the guest machine that communicate directly
with the host, bypassing many of the performance bottlenecks. While it's
true that this allows such strange things as having the guest OS change
resolution every time you resize the host window (my current Windows
2000 resolution is 1016x631), having the mouse move fluently in and out
of the guest window or being able to copy/paste between machines, what
it REALLY allows is for low overhead IO.
My current SCSI driver on Windows 2000 is called "VMWare SCSI Controller".
Yes, I think that it's possible, with XEN, to write a Windows driver for
performing direct IO, and performance should not suffer once someone does.
Shachar
--
Shachar Shemesh
Lingnu Open Source Consulting ltd.
Have you backed up today's work? http://www.lingnu.com/backup.html
=================================================================
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]