8

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)

3
  • 3
    The answer will depend mostly on the guest OS and then how you measure fast. Number crunching CPU intensive operations? Video intensive? Access to hardware resources like USB?
    – Caleb
    May 28 '11 at 11:30
  • ~~All of them, does a comparing table exists? Jun 6 '11 at 19:16
  • 1
    @LanceBaynes: Bad car analogy ahead - "I need the best car." "For what? Racing? Cargo transport? Passenger luxury? Good mileage?" "All of them." Oct 26 '11 at 8:01
9

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).

4
  • Speed is assuredly not identical between all virtualization platforms; the hypervisor is a lot more than a wrapper around the instructions already provided by the CPU. It has to emulate virtual (or paravirtual) hardware, manage memory allocations and paging, schedule CPUs (to my knowledge, nothing but VMware implements relaxed co-scheduling) and so forth. There's lots of benchmarks out there for lots of different workloads on lots of different hypervisors. Oct 26 '11 at 1:38
  • @jgoldschrafe Nope. When it comes to hardware virtualization the performance should be identical = bellow the measurement error threshold. And emulating hardware is exactly what the hypervisor won't do, when you have hardware virtualization. Oct 26 '11 at 11:38
  • If you're saying that things like VMware's virtual e1000 network adapter or LSI Logic SCSI controller that are presented to the guest are nothing more than shims to CPU extensions, I have to question whether you've even used a virtualization product before. Oct 26 '11 at 20:01
  • @jgoldschrafe No, I'm talking about hardware virtualization. When you use para-virtualzation and virtual hardware then yes, it makes sense to compare the performance (in my field it doesn't, since the performance can never match real hardware). Oct 27 '11 at 8:17
7

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.

2
  • Based on what information do you conclude that OpenVZ/Virtuozzo and VServer are the fastest under Linux?
    – hookenz
    Feb 13 '12 at 18:36
  • No specific information but common sense. To clarify, I'm not writing OS level virtualization is necessarily the best solution and has no drawbacks but just it can hardly be beaten as far as pure performance is concerned.
    – jlliagre
    Feb 13 '12 at 20:23
0

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.

5
  • Bare metal or not, hypervisors are an additional layer between the guest OS and the hardware. OS-level virtualization solutions do not need that layer so have much less overhead (if any).
    – jlliagre
    Oct 25 '11 at 22:57
  • The performance difference between OS-layer and full hardware virtualization (with hardware shadow page tables) is negligible; most virtualization platforms these days will have a performance hit under 5% for most workloads. OS-layer virtualization can arguably get you better consolidation ratios, but generally at the cost of QoS and uptime. There's lots of reasons to choose one over the other, but performance is not chief among them. Oct 26 '11 at 1:39
  • @jiliagre: With OS-level virtualization you also have an additional layer - may it be chroot or some other "hiding" technique.
    – Nils
    Oct 26 '11 at 19:33
  • Sorry for the late reply but you mistyped my nickname. There should be no additional layer with OS-level virtualization. I agree there is some extra code to execute for a small subset of system calls but that should still be negligible compared to what hypervisors have to achieve (i.e. context/mode switches). Not that the latter aren't improving though ...
    – jlliagre
    Feb 13 '12 at 21:13
  • @jlliagre sorry for the typo. The switch is IMHO performed by the CPUs - so the hypervisor has pretty much the same job as with "lightweight" virtualization: scheduling processes and threads. RAM is directly mapped in XEN, too.
    – Nils
    Feb 16 '12 at 22:08
0

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:

  • I need to run a (what i hate most) Windows Guest
  • I need to boot it
  • I need to inject some data onto the guest
  • I need to do some task that can not be done outside Windows (one small reason i hate Windows)
  • I need to extract (save outside that Windows) the work done
  • I need to power down that guest

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:

  1. Boot the virtualized OS
  2. Transfer data to and from host/guest
  3. Shutdown the virtualized OS

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:

  • Boot time of the guest
  • Transfer time from hot to guest and viceversa

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):

  • QEMU in a configutation that is 'emulating' all hardware, processor, motherboard, etc... all 'emulated' so it is not a 'virtualization' solution, but that sample serves me as an example of a very, very slow way of running a guest
  • VirtualBOX is virtualizating the hardware and is much faster than QEMU, because QEMU was emulating all the hardware (just for using a compare like a turtle versus a formula 1)

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:

  • The need to test the new application executable on all sort of Windows Versions

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:

  • Booting Windows 10 Home 64Bits version 1809.17763.404 in a guest over VirtualBox (default configuration) takes near eigth full minutes, prior you can launch and type on Notepad.
  • Booting the same Windows version in a guest over QEMU (virtualizting mode, not emulating mode, and tweak cfg) takes only three minutes.

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.