How to speed up QEMU on Windows host?

27,775

Solution 1

Inntran is right here: You can't use VM acceleration without loading a kernel module/driver, which needs administrative privileges.

However, this seems a bad method of software distribution to me: you don't need to deploy a Ubuntu images on every client, you simply need to install a single, shared instance and use it via SSH or via FreeNX/X2Go.

Solution 2

Go to "Turn Windows features on or off", and check the Windows Hypervisor Platform. Pass --accel whpx to QEMU. It works on my computer, and I don't have Pro or the May 2020 update.
If this is necroposting, sorry about that.

Solution 3

Hyper-V comes natively with recent Windows systems, even client ones.

You need local Administrator rights to enable it, but once enabled, you can give your users the rights to create and run virtual machines without the need to be full administrators, by placing them in the "Hyper-V Administrators" local group.

The performance are really good, because the virtualization technology is exactly the same used on Hyper-V servers (it actually runs under the main OS, although it looks like an application sitting on top of it).

Solution 4

As far as I know, you can not access CPU's virtualization extension without a kernel driver.

VirtualBox might be a better answer to your situation. VirtualBox can make use of CPU's virtualization extension, so it's faster than plain QEMU, easier to use as well.

So try to persuade your customers' IT department to install VirtualBox on their machines.

Share:
27,775

Related videos on Youtube

Martin Heide
Author by

Martin Heide

Updated on September 18, 2022

Comments

  • Martin Heide
    Martin Heide over 1 year

    We want to run our Ubuntu 64bit web server virtualized/emulated on a Windows 64bit host. Intended use is to distribute the VM to customers who might not have "elevated" or "admin" rights on the Windows machine. The system should be portable, i.e. run from a USB pen drive.

    Because of this restriction, we ended up with QEMU which does not require special Windows rights to run. The drawback is that the Linux system only reaches 1/10 of the speed compared to running it in Virtualbox.

    Is there any way to speed up QEMU on Windows 64bit hosts?

    • I had a look at KQEMU, but it is a service, so it can't be started by "normal" Windows users. Additionally, it seems to be end-of-life and 64bit support is experimental.
    • The WinKVM project also seems to be no longer actively developed, and probably also requires admin rights on the Windows host.

    This is my QEMU commandline, maybe someone sees a possibility for improvement:

    "C:\Program Files\qemu-2.1.0\qemu-system-x86_64.exe"
    -drive "file=C:\disk1.vmdk,index=0,media=disk"
    -drive "file=C:\disk2.vmdk,index=1,media=disk"
    -smp 4
    -net nic,vlan=0,macaddr=52-54-00-B3-47-55,model=rtl8139
    -net user,hostfwd=tcp::9000-:80
    -m 1024
    
    • Michael Hampton
      Michael Hampton over 9 years
      If you want to use QEMU/KVM, you get rid of the Windows host and use a Linux host. That's the only way. If you really must have Windows, then you virtualize with something else.
    • Martin Heide
      Martin Heide over 9 years
      Yes: Our users are mostly Windows users, and they want to work with other software at the same time, e.g. MS office or CAD programs. Using a bootable USB drive would totally switch context and they would have to find suitable Linux programs for their tasks. Our customers are not IT experts, so forcing them to use another OS is generally not a good solution. And if your IT department doesn't give you admin rights, it will most likely also prevent you from booting from USB.
  • Suncatcher
    Suncatcher about 5 years
    even client ones only Pro ones