Is it still XEN? Or is it VirtualBox, KVM, VmWare or else?
With fastest I mean that the guest VM is fast (the smallest speed loss because of Virtualization)
Is it still XEN? Or is it VirtualBox, KVM, VmWare or else?
With fastest I mean that the guest VM is fast (the smallest speed loss because of Virtualization)
Fastest under what conditions? With hardware virtualization, the speed should be identical on all virtualization platforms.
Therefore the only thing that you should consider looking for is hardware virtualization support in the software.
As far as I know, Virtualbox doesn't support IOMMU hardware virtualization yet. KVM, VmWare and Xen should. Xen and VmWare should be the only ones supporting IOMMU on graphic cards (with differing degrees of success).
The fastest solution is generally the one that introduce the less overhead compared to a non virtualized environment. If you can cope with its "non OS diversity" limitation, that would be an OS level virtualization implementation. With Linux, that translates to OpenVZ/Virtuozzo, Linux containers (lxc) and VServer.
I still believe it is XEN. I once had a talk with a RH-pre-sales guy and asked why they kicked out XEN in favour of KVM. He said that KVM is at least as fast as XEN. I asked him to send me proof - nothing came back...
I also disagree with the OS-level. A bare-metal-hypervisor based virtualization has IMHO less overhead than that. So a PV XEN DomU is almost as good as the bare-metal.
Let me put a very concrete sample for the main question, virtualize another OS over the Linux that is where the virtualization solution is running.
Just imagine this scenario:
With that scenario i mind, what virtualization solution will let me do all in the less time.
Assume that the time for what i need to do on the guest do not count, since it is a manual task, etc.; what rests? Just three things:
Now assume that you ara as paranoid as me, and that Guest is in 'inmutable' state, so at each boot all you done in a previous boot is lost. Allways boot the same, if windows UpDates had enter they do nothing (at boot the disks states are reverted back to an 'inmutable' state), etc., What rests? Only two things:
So again the main question, what virtualization solution do that in less time?
To put an example of waht i know and had used (QEMU & VirtualBox):
So, again, when two virtualization solutions can run the same guest and allow you to do the same task on the guest... witch one is faster? or better question, with whitch one i need less time to boot the same guest, etc?
Just to let it very clear, a typical example for a developer:
Imagine Windows versions are from Win95, 98, ME, 2000, XP, Vista, 7, 8, 8.1, 10 and all subversions of 10 (1507, 1511, 1604, 1608, 1709 ... and so on, and also with all levels of Windows UpDates, etc... and for each on a Home, Pro, Enterprise, etc.).
That makes the task of testing the new EXE in more than some dozen thuosand virtual guest versions of Windows.
Imagine the real task (testing the new EXE) takes just less than a minute (just run and test the new extra funcionality on the EXE), but it must be done inside near a million of Windows combinations of version, updates, etc.
For each combination, a BOOT of a specific Windows version patch level, etc., must be done, that BOOT implies a time that can be from less than one minute to more than ten minutes... yes i know a million * 1 minute = a million of minutes (near 694.4 days)... this is just a pure mere example to show the ratio BOOT time versus TEST time.
Now, if a virtualization solution makes that GUEST to boot in 99.8% of the time that other virtualization solution (really nearly the same time) you have gain 1.5 days... and that is just a 0.2 % ... imagine it it is a 5% (do not imagine, you gain more than a month of time 34.27 days).
So, is that question what virtualization solution allows to run the guest faster? NO, it must be readed as with what virtualization solution the guest would do the job in less time.
Just an example i know:
That is a gain of 37.5%, something to take in consideration. Back to the sample of testing an EXE on a million VM's ... that will save you 260 days of work.
I think the one that asks (and also me) what to know wicth one will be faster. Since some are 'paid' versions, some very expensive (>1000€), each person on the world can not do the tests needed to compare all of them.
Now, personal opinion... VirtualBOX is a turtle... Same Windows 10 (clean install from a USB-ISO) over real hardware vs VirtualBOX is Booting that Windows 10 in a few seconds verus three to four minutes... but again, it is not comparing real hardware vs virtualized, it is comparing virtualized with 'A' vesus virtualized with 'B'.
I had search a lot on Internet and did not find any comparative of Windows guest BOOT time over virtualization solutions.
Another thing would be running in virtualized enviroment a database, etc. Since i have no experience with that i can not talk about that.
What i can talk about (since i have that need to test new EXEs on every any possible Winodws) is about BOOTING times on VirtualBOX... it is very, very slow ... but since i need to pass to the guest some USB (dongles) and PCIe cards, parrallel port (dongles), etc. and in a Free-Paid ... i am stuck onto VirtualBOX.
Hope this focus the question on the real text of the question... what virtualization solution makes the guest do the job in less time.