Anyone here running a Hyper-V VM - what is the Internet speed?

Am considering to install a VM using Hyper-V (currently using VMware Workstation Pro).
The Internet speed is just very poor : less than half the speed of the host.
Actually I did not spend much attention to it so far, until I was trying out a VPN (within the VM) and the download speed was reduced to some 8-9% of the host speed and clicking on whatever desktop button (within VM) resulted in waiting for some 10-15 seconds(!) before something was happening..

It remained the same, even after a fresh install of VMware Workstation, so I believe it is just it, no way to improve it. The latest version of Workstation is dramatically slow.

Anyway, reason for me to explore Hyper-V. But then again, if the Ookla-speed is similarly slow, switching doesn't make much sense.

Thanks.

I am running Windows 10 under VM Workstation Pro 17.6.1 with no issues as far as Internet speed is concerned.

Hyper-V is quite fast, in the tests I did, it was way faster than using Proxmox e.g.. A windows machine running Hyper-V will also consume less power, compared to a Proxmox based Linux setup.

I have a dozen little Futro S720 and S920 machines here, which run at 3-4W with Windows Server 2022 Datacenter Edition (as host) and another Windows Server as VM (guest) and an open RDP-Connection in idle mode, this is fantastic! o)

Disk IO is basically at native performance in a Hyper-V guest, CPU is 5-10% less, network not tested yet, but I guess it's fine, no issues so far.

On Proxmox or bare metal Linux, Disk IO is 50% at best for a guest (even the host might be slower already compared to Windows), and CPU is 20-25% less than native and network only reaches 50% of full network speed of the bare metal Windows performance (and uses 100% CPU load at the same time), while a Windows machine saturates the network easily at 100% with 30% CPU usage only.

I can even add AES encryption to the local drive and copy things with full network speed over to the little Futro computers when using Windows, on Linux it was overloaded already without the encryption going on.

Wrapping up, the Windows technology performes the best for me (on the hardware I tested).
It's worth testing it out! o) If you have dedicated hardware, there also is this free to use Windows 2019 Hyper-V Server from Microsoft, if you don't have access to other Windows (Server) versions.

Hyper-V on my Win10 also runs fine, even though I only run 16GB of memory and that RAM was already fully used before tinkering around with virtual machines. I have a 32GB swap file now, I constantly standby and resume and the host OS including all guests go to sleep and wake up just fine. It works awesome!

Drawback with Hyper-V is making use of audio and video of the guest or making use of specific hardware attached to the host (USB device e.g.). This is much easier in VMWare / Virtualbox, if possible at all for a VM hosted on Hyper-V (possible, but needs fighting with powershell commands, no option in the GUI to pass through any devices apart from disk / network).
The native guest console / video output has bad performance on Hyper-V and no audio, it's not meant to be used outside of setting up a VM / guest. You will have no shared clipboard in this console either, if you don't make use of that "enhanced connection experience" thing, which uses RDP under the hood to provide better performance and usability, but this is not available if you install plain Debian for yourself (and you actually don't need it if you are using a regular RDP connection later on, which ends up being the same experience).

If you are connecting via RDP to a guest Windows, you are fine for office / adminstration work and light gaming. You will have audio, clipboard and video being streamed with good performance.

If you connect via RDP to a Linux guest, audio is there in specific distributions only (most distros lack PulseAudio modules for xRDP, you can compile these for Debian on your own though, if you want to go through that hell.. o). Only very latest Fedora and Ubuntu have audio enabled RDP support. Video / streaming the RDP connection from the Linux guest is not performing well in general, it is totally usable and I do coding on a Linux VM via RDP and things, but the efficiency is not there, the video streams take 20 mb/s bandwith on your LAN for full screen video playback and around 2-5 mb/s if you are doing regular things on the desktop. This is nothing for connecting to over the internet in most cases (unless you reduce resolution and color depth), since the Linux xRDP does not do any video or audio encoding, it just streams raw video and audio, kind of.

The actual RDP implementation when used with Windows host and guests is very more effective, using host side rendering and only using 2-5% the bandwidth compared to connecting to a Linux machine via RDP, but at least it is working with Linux, very compatible with all RDP-Clients I tested, including audio, clipboard and local drive sharing and it's working very good in general (despite the bandwidth issue and audio crackling here and there, but I do not stream music over RDP that much.. o).

Hyper-V is a nice hypervisor, it only fits specific use cases though and you won't run older machines and operating systems in there I guess, that's not what it was invented for, that's where VMWare and VirtualBox, QEMU etc. come in. VMWare supports GPU hardware acceleration to some extend, VMWare allows 2GB GPU memory, VirtualBox is somewhere around 128MB and not accelerated iirc, but connecting devices or building a Pentium based DOS machine is way easier.

If you need to run / emulate old PC hardware, there is PCEmu as well, it is meant to emulate old PC hardware and will emulate soundblaster and all the things we had back then.

Wrapping up again:
It's important to know what you want to do with the VM and pick the right hypervisor for it. Looking up benchmarks and performance comparison between Hyper-V, ESXi, VMWare, VirtualBox, Proxmox etc. gives very mixed results. It always depends and the right configuration is crucial to keep performance up (which means installing guest side driver packages e.g., or picking the right network translation layer, file system for your guest disks, disk driver etc..). It's a quite complex topic, but Hyper-V in general is not a bad choice for modern OS and running anything headless. If you run Linux guests in Hyper-V, make sure the distribution makes use of the various Hyper-V aware system daemons (providing heartbeat, memory balooning, etc..). Some distributions come with these by default, at least the kernel or something detects the environment and runs the Hyper-V modules automatically). If they are not present, you can add them by using the "backports" repo on Debian e.g.. Detailed information on that is to be found on the internet.

The Microsoft / Hyper-V preferred *.vhdx disk image format is also quite capable, providing dynamic sizing and mounting options and even on Linux I am able to dynamically mount a *.vhdx file from a Windows network share and have a virtual disk for generic use directly in Linux, which is not passed through to the actual guest VM by the Hyper-V host (I'm using "qemu-utils" and "nbd-client" for this.)

@aussieboykie
I guess Internet speed is roughly the same then?
Just to illustrate: with me (Ookla) host 945Mbps (up and down), VMware : 380Mbps, slowly climbing up from some 100-150Mbps, with a free VPN: 60Mbps.
That aside, as said, very slow response. VM has just 3-4 tools, 2 of them even portable, so it is pretty much a clean VM. Memory is set to the recommended 2GB.

This is me testing my old customized Quake III windows version on Linux with Debian 12, with Proton-Experimental (Wine) from the Linux Steam-Client (launched via AppImage), loaded from dynamically mounted VHDX-File located on a Windows-Share, mounted with NBD. All running in Hyper-V on Win10 over xRDP with self compiled audio modules.

Network IO is around 10-20 mb/s from the Linux VM on Gen6-i5 quad core when doing this kind of fullscreen RDP. Could be fast enough already for most things, but this is not a network performance test of course, just trying to give an impression of performance in general. o))

I only have around 100mbit internet.. but speed testing Linux guest VM versus Win10 Hyper-V host gives same result (Linux VM even is some percent faster for some unknown reason).

I can't test Internet speed with 1Gbit as you have.. I am sitting in the centre of a major german city, there is no internet that fast here yet though! o)

EDIT: Exposed my IP address for a short moment here, but I already reconnected to spoil the fun for all the hackers around! o)

@tbone
Thank you so much for your elaborate reply. Truly appreciated.

In my case, I would basically use the Windows 10-VM to test out Windows software only: to see what it does, how things work, before deciding to buy or install it on the host.

After trying software I restore the snapshot. With Hyper-V it is called checkpoints I believe.
The few apps within the VM are regularly updated as well as Windows itself, then a snapshot is made.

Right now I am going thru some tutorials and videos on creating Hyper-V resp creating checkpoints and actually also how to delete the Hyper-VM VM's should I wish to do so.

Thanks again for your reply!

FWIW only

Ookla Speedtest : Host Internet speed vs VMware Workstation with a free VPN
(I know, usually a free VPN has a limited bandwidth)

That problem seems more likely to be due to the VPN than VMware.

VMware also has several different networking modes, which could help. But I think you're just measuring the VPN's speed, not the VM's.

Yes, what is the speed without the VPN, that's what's to measure in the first place, if that speed is "correct", you know your problem!?

EDIT: The VPN connected speed is similar to my regular internet speed, that's too slow for you? o)

The VM speed is about 380Mb (without VPN). Just wanted to test the VPN.

Network is set to NAT
But tried
Bridged: Connected directly to the physical network
Custom: Specific virtual network: VMnet0 (Auto-bridging)

it was all the same I am afraid.

At best I could improve the speed by roughly 50Mbps by changing the DNS to those of Google (8888/8844) of NAT, that I just did.

OTOH maybe that is just it and should be considered as 'normal', no idea.
Reason for asking here.

How does DNS influence transfer speed? Seems unusual to me, since DNS is used once and cached and surely not while transferring data?

I think you should measure

  • raw network speed on your host
  • raw internet speed on your host
  • raw VPN speed on your host

Then you have baselines to work with and know where the virtual machine lacks behind, when doing the same exact tests from the VM.

For what it's worth. Running Workstation 17. Guest OS Windows 11 22H2, No VPN, Bridged Network:
857/39

Host:
894/39

1 Like

Thanks.
Workstation 17 on WIndows 10 x64, no VPN, bridged, using host network adapter, 527/305 down/up (at best, after seeking various servers)

Workstation 17 using Microsoft Hyper-V network adapater: 391/790 down/up.

Guess just have to accept that, though I have no real explanation for this big difference, host vs vm.
BTW I tried Hyper-V VM: same thing.

Thanks again.