26

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.

2
  • 1
    After updating to Windows 10 1809, I've had exactly the same problem (also with a "Realtek PCIe GBE Family Controller"), except that down speed was fine and up speed got reduced to less than 1 Mbps. Updating the device driver through "Device Manager" fixed the issue.
    – Heinzi
    Nov 16, 2018 at 13:12
  • 2
    Mike's advice resolved my issue and wifi is working at full speed again.
    – tpk
    Jun 23, 2020 at 19:36

14 Answers 14

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

4
  • This whole issue is super annoying, but alas this does work. Thanks.
    – Mike
    Feb 27, 2019 at 6:43
  • Worked for me, too. Thanks a lot :-)
    – Paddre
    Apr 1, 2021 at 7:29
  • i have vm-1 and vm-2. vm-1 has NAT enabled. i go to Internet from vm-2 via vm-1. by default download speed was 1Mbit\s. When i disable VMQ i get 500Mbit\s. thank you!
    – Alex
    Mar 24, 2023 at 18:49
  • Enabling any kind of external switch - even on a different NIC killed my hosts 10Gbe transfer speeds in half. This ICS solution works and I can forward ports with ICS Sharing > Settings > Add. Not ideal but it works with no speed penalties. Nice.
    – Damien
    Jul 20, 2023 at 0:35
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).

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

4
  • 2
    Unfortunately command Set-VMNetworkAdapter does not work for me. I tried to use network adapter name from Control panel, from Hyper-V, also tried to rename, with double quotes, also w/o. But I always get the same error: Set-VMNetworkAdapter : No network adapter was found with the given criteria. (PowerShell run as admin also does not help)
    – Maris B.
    Nov 8, 2017 at 8:42
  • I think this worked for me after a restart. I am running minikube on hyper-v and my host machines uses wifi. When after creating the virtual switch to share the host network, my internet was basically 1/10 of the expected. Applied the Powershell command and did not work. Restarted and it worked.
    – VRPF
    May 21, 2018 at 10:41
  • @MarisB. did you run Powershell as an administrator? Jan 3, 2019 at 19:05
  • @AubreyRobertson - yes, As Administrator
    – Maris B.
    Jan 4, 2019 at 15:19
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.

1
  • Strangely this worked for me too. First I created the external switch and used my host for awhile, noticed the slow-down. Deleted it and created an internal switch and turned Internet sharing on. This worked except then the VM was behind a NAT and I needed it not to be. Deleted the internal switch, turned off Internet sharing again, created a new external switch and immediately rebooted the host. Then everything was fine! Jan 20, 2020 at 23:19
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.

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.

1
  • I was getting 200Mbps down 17Mbps up. I created the switch, and it went to 0.18 Mbps down and 17 Mpbs up. I removed the switch, back to 200 Mbps down. I updated my "Intel(R) Wireless AC" driver, and it fixed the problem. Now I get 200 Mbps down with the switch enabled. Sep 4, 2020 at 12:48
1

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.

2
  • I've tried this approach, but it seems I end up with the same problem after the latest update (Win 10 Pro 64 update 1809). A couple of days ago, any external network, or a bridged internal network, causes the same slowdown. Nov 1, 2018 at 0:19
  • @KlemenSlavič I haven't upgraded to 1809 yet but in general I heard its steaming pile of bugs. So I wouldn't doubt that it may break this. Thanks for the heads up.
    – iceflow19
    Nov 17, 2018 at 1:04
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)

2
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!

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
  • This, incidentally, seemed to have been a factor in the slowness on my machine. Besides that VMQ issue mentioned above. Even after uninstalling Hyper-V I got the speeds measured through fast.com on 5GHz Wifi at 460 Kbps. Now after switching to 2.4GHz it clocks at 68 Mbps.
    – user400915
    Dec 7, 2021 at 17:07

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .