28

I have Windows 10 fully updated. I do the following:

  1. Testing internet speed - 70 Mbps up / 70 Mpbs down
  2. Hyper-V Manager
  3. Virtual Switch Manager
  4. Create Virtual Switch - External
  5. Testing internet speed - 50 Mpbs up / 0.1 Mbps down
  6. Remove virtual switch
  7. Testing internet speed - 70 Mbps up / 70 Mpbs down

I have not created any virtual machines yet. The host network performance is degraded. The host has "Realtek PCIe GBE Family Controller".

The only fix I found in internet is for Broadcom cards -- to disable "Large Send Offload" in Adapters properties, but unfortunately this does not help.

Maris B.
  • 1,422

15 Answers15

20

The VMQ trick was useful to me a few months ago, before the March 2018 Windows update had been applied at work. After that update and perhaps some other smaller updates, I started having intermittent network performance problems again while I had a VM actively running.

Experimentally, I tried something other than the normal network bridge: I enabled Internet Connection Sharing on my NIC, sharing to an internal virtual network switch ("vEthernet (nat) 2"). So far so good - no noticeable impact on the host and the VM now has full speed Internet access as well.

enter image description here

sfuqua
  • 301
6

I confirm having this issue on windows 10 1903. What worked for me was the internal switch workaround . Connecting to External Switch with physical card share would kill my host internet and obvious the vm won't get any.

Therefore here are the steps:

1)In hyper-v -> Virtual Switch Manager, create a new Internal Switch and on connection type , select Internal Network

2)From host control panel , go to Network and Internet\Network Connections -> right click on your host network card -> properties . Then move to Sharing tab and check mark "Allow other network users ..." then select the Internal Network switch that was created in the previous step

3)Go to your virtual machine settings and select the internal network adapter

Enjoy your internet on your vm . Microsoft get your techs in order and fix this issue.

Cheers !

4

For those having trouble with Mr. Raspberry's answer:

The network adapter name recognized by the *-VMNetworkAdapter commands are different than what is displayed in Windows. You must first list the available network adapters with Get-VMNetworkAdapter -ManagementOS and Get-VMNetworkAdapter * to get the adapter names that the command will recognize.

The fix for me was to modify the adapter within the VM, rather than on the management OS (i.e. without the -ManagementOS option).

zx485
  • 2,337
Dorian
  • 41
3

Try to disable VMQ

To disable VMQ on a virtual switch, use the Set-VMNetworkAdapter PowerShell cmdlet as follows:

Set-VMNetworkAdapter –ManagementOS -Name <VirtualNetworkAdapterName> -VmqWeight 0

To disable VMQ on a physical network adapter, uncheck the appropriate box in the Advanced tab of the network adapter's properties page.

To change the MAC address of a virtual switch, either modify it in Hyper-V Manager or by using one of the following Set-VMNetworkAdapter PowerShell cmdlets:

  • Using a static MAC address:

    Set-VMNetworkAdapter –ManagementOS -Name <VirtualNetworkAdapterName> -StaticMacAddress <MacAddress>

  • Using a dynamic MAC address:

    Set-VMNetworkAdapter –ManagementOS -Name <VirtualNetworkAdapterName> -DynamicMacAddress

Source: http://www.dell.com/support/article/us/en/19/sln132131/windows-server--slow-network-performance-on-hyper-v-virtual-machines-with-virtual-machine-queue--vmq--enabled?lang=en

3

For me before i do anything else, after creating the switch in Hyper-V manager restart the machine resets everything. Now I see same speed both ends.

2

I've been struggling with this issue for a while now myself. Same scenario, same dilemma. Not much help online either, had to experiment around (even had a couple bluescreens) until I found a solution.

With the Fall Creators Update, Microsoft broadsided everybody by forcing us all to use their new "Default Switch". The problem comes from the fact that said switch monopolizes one of your NICs by creating a NAT over the "Internet Connection Sharing" service. If you only had one NIC then you're out of luck connecting an external virtual switch. While it will let you do so, it results in the download speeds you're seeing. Internally something funky is going on with the NAT, but as for what I don't know.

The following does work though to get the intended end result:

  1. Create an internal switch
  2. Assign the assoc. virtual ethernet adapter for the switch with a static IP not in your DHCP range ( ex: 192.168.1.1 ) and a subnet mask.
  3. Select both your NIC and the adapter from step #2 and add them to a bridge

The end result will be that your VMs are on your external network and receiving IP addresses from DHCP, while your host shouldn't be impaired in any fashion as far as I can tell.

If you want to add more "pseudo-external" switches just do steps #1 and #2 and add them to the existing bridge.

iceflow19
  • 121
1

It's not exactly a proper solution, but rather an ugly hack which kind of works around the issue:

Guest OS is likely isn't affected by this issue, so having it act as a router (i.e. set up forwarding and NAT in the guest OS) will solve the problem - and introduce a bunch of new ones since your host machine is behind a NAT now.

I'm pretty sure it's a bug that was introduced in the Fall Creators Update for Win10 (release 1709), since the exact same setup was working fine for me before I've updated. So the other option would be waiting for a patch from Microsoft that will restore things to their rightful order.

Rumkex
  • 11
1

Updating my network adapter drivers, specifically my Dell wireless driver, fixed the slow Internet speed problem for me (so far).

I had the same problem with Windows 10 v 1709 running on a Dell M6800 notebook computer connected to my local router using WiFi. I had just installed Windows 10 a couple of months ago, so I thought my drivers were all up to date.

After creating an external virtual switch, my Internet speeds slowed to about 10% of the normal speed.

I tried using static IPV4 DNS settings in the network adapters and that did not solve the slow speed.

Finally, in Device Manager, I updated my network adapter drivers and that fixed my problem.

Hope this helps.

RichH
  • 11
1

For me, I did some of the above, so it may have helped, but I also disabled "allow management operating system to share this network adapter" in Hyper-V Virtual Switch Manager for the adapter I was using (I am using the internet wireless for Hyper-V and the external for the Host)

1

W10 21H2, new install, WiFi NIC with 5ghz connection. I tried the work arounds given, but none worked. The problem was resolved after disabling IPv6 and re-bridging the connections to the external virtual switch.

0

https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/setup-nat-network provides a good step-by-step on setting up NAT for internal Hyper-V networks.

TLDR, for example:

PS C:\> New-VMSwitch -SwitchName "SwitchName" -SwitchType Internal

PS C:\> Get-NetAdapter

Name                  InterfaceDescription               ifIndex Status       MacAddress           LinkSpeed
----                  --------------------               ------- ------       ----------           ---------
"SwitchName"          Hyper-V Virtual Ethernet Adapter        40 Up           00-15-5D-00-6A-01      10 Gbps
Wi-Fi                 Marvell AVASTAR Wireless-AC Net...      18 Up           98-5F-D3-34-0C-D3     300 Mbps
Bluetooth Network ... Bluetooth Device (Personal Area...      21 Disconnected 98-5F-D3-34-0C-D4       3 Mbps

PS C:\> New-NetIPAddress -IPAddress 192.168.99.1 -PrefixLength 24 -InterfaceIndex 40
PS C:\> New-NetNat -Name HyperVNat -InternalIPInterfaceAddressPrefix 192.168.99.0/24

Machines on the internal network will not get DHCP assigned addresses, so you'll need to configure those yourself. I used Google DNS (8.8.8.8/8.8.4.4) for as the DNS servers for the internal machines.

0

Same issue for me and it seems to be coming back after updates.

I am a VMWare user and and I was "forced" to work with Hyper-V. The first noticeable thing missing when creating a virtual switch is the lack of an option for NAT. So I ended up using "External" in order to connect my VMs to the physical network. My first problem was not the internet speed and internet connection erratic behavior. It was the fact that I was exposing my VMs to the external network! Then the slow/erratic connection issue arose on top of that!

So I used the PS commands found here to create a NAT adapter and this work like a charm!

ManuD
  • 1
0

If you are loosing internet when you create the virtual adapter what you need to do is go the the network connections (windows+r type ncpa.cpl) click properties look for Internet protocol version 4 IPv4 click properties again then set up it up it will look something like

IP address: 192.168.1.55 subnet mask: 255.255.255.0 default gateway: 192.168.1.1

prefered DNS 1.1.1.1

Although based on what I read maybe you just need to make DNS 1.1.1.1 and thats it

0

Ran into same issue with Hyper-V 10.0.1904 on my Windows 20H2 recently . Tried a bunch of things like using internal switch, changing wireless NIC configurations or updating driver. Nothing worked out for me.

It seems this issue only happens to wireless NIC and 5G Hz Wifi. Switch my Wifi to 2.4G (lower speed), then problem's gone.

-1

Same exact issue here.

Yesterday after enabling fiber-optic internet connectivity at home I started wi-fi speed tests on a recently installed Windows 11 23H2 Pro and I noticed that on this machine upload speed was indecently low (around or below 1 Mbps) while on other 2 Windows 11 machines and on my smartphone upload speed was at minimum of 40 Mbps and up to almost 200 Mbps. Looking at network performance in Windows Task Manager I noticed that the network interface name displayed was that of a hyper-v created virtual network interface. Once I removed the 2 hyper-v virtual switches I had created in hyper-v switch manager upload speed got back to normal. Now I wonder, why are virtual network interfaces created to be used in VMs also being used and impacting the host machine?

noplace
  • 135