10

I've set up my Hyper-V environment (Win 10 Pro 64-bit, update 1809) to have an external virtual switch bound to my wifi adapter and shared with the host OS. I've used this virtual switch with my Debian guest VM to access the internet and the local network.

This was fine up until a couple of days ago when my host's network suddenly dropped network throughput from something like 350Mbps to 8Mbps.

Removing the external switch causes the slowdown to go away completely.

I've tried disabling VMQ, even though my wireless card driver doesn't support it (it's the built-in Qualcomm wifi chip on an Asus Strix z270e motherboard), but that didn't change anything.

Is there a way to have an external switch that shares the connection with the host without these problems, or a resource I can study to figure out how to get around these problems? I need the VM to be exposed to the local network, since I connect to it via test devices connected to my LAN.

Update 1

The answer provided here does describe my situation correctly, and I've tried the solution by making applying the following steps:

  1. creating an Internal virtual switch,
  2. selecting the internal virtual switch and my wifi NIC in the network control panel and selecting "create bridge" from the context menu.

This resulted in the same slowdown as before with an external virtual switch.

External links

https://win10.guru/hyper-v-external-switches-killing-networking-in-insider-builds

2
  • Research TCP Offloading virtual machine performance issues. Oct 31, 2018 at 23:21
  • I don't think that applies to my scenario, as the Qualcomm NIC driver doesn't support it. I've also disabled IPSec offloading in the network adapter on the host, and it doesn't make a lick of difference. Oct 31, 2018 at 23:39

9 Answers 9

17

So, I've been fighting this issue myself for a few hours on my nice new laptop, and I believe I've found the combination of settings that seems to have restored most of my connectivity.

Since I have an Intel NIC I have no idea if this will help, but I'm curious and would love for you to try if you haven't gotten it sorted already.

Problem no.1: Slow download Disable coalescing on the Wifi-card. This completely restored my download speed and resolved issues I was seeing with intermittent connectivity in the host OS and on VMs.

Problem no.2: Slow upload Disable Large Send Offload on the Virtual adapter representing the external switch. In my case called vEthernet(WAN)

4
  • Thanks a lot Mike, it works!
    – aqquadro
    Dec 6, 2020 at 15:39
  • It is so helpful. I had this problems since some times and finally got it working again. Thank you!
    – SQueek
    Dec 29, 2020 at 7:13
  • Mike! You sir, are an absoute legend! After seeing so many other posts about Broadcom NICs this is the exact thing that fixed my Intel Wifi NIC. Thank you! For everyone else: try this one if you've got an intel NIC - there are other tweaks out there for Broadcom. Feb 19, 2021 at 6:52
  • You are a boss. This has bothered me to a point of switching completely to virtualbox and vmware workstation for a year! Now finally fixed...
    – Pit
    Jan 27 at 9:19
10

I have Intel Killer WiFi on an XPS 15 9570 and XPS 17 9700 and they have similar issues with Hyper-V. I will give the specific configuration that restored full performance for me:

  • vEthernet adapter configured for External access pointing to the WiFi adapter

    • Set “Recv Segment Coalescing (IPv4)” to “Disabled”
    • Set “Recv Segment Coalescing (IPv6)” to “Disabled”
    • Set “Large Send Offload Version 2 (IPv4)” to “Disabled”
    • Set “Large Send Offload Version 2 (IPv6)” to “Disabled”
  • WiFi adapter

    • Set “D0 PacketCoalescing” or “Packet Coalescing” to “Enable” (or “Disable”—sometimes changing this setting makes things faster even though one setting used to be better—it doesn’t seem consistent). This setting may not make a difference. Try skipping this step and see if the above vEthernet changes are sufficient first.

Inside of the VM itself, I found I also have to do:

  • Ethernet adapter
    • Set “Large Send Offload Version 2 (IPv4)” to “Disabled”
    • Set “Large Send Offload Version 2 (IPv6)” to “Disabled”

Together, these settings restored my host system’s connection speed from 7Mbps to 60Mbps which is the performance I would get if I didn’t have Hyper-V configured at all. I also still get just about the same performance on my guests.

Note that in the latest version of Windows 11, you may need to go to Device Manager to open the hardware properties for your network adapters as it seems to no longer be accessible from Control Panel’s Network and Sharing center.

5
  • 1
    YES! This! This fixed my issue. Wifi adapter packet coalescing enabled, and the external adapter everything listed disabled. That was frustrating.
    – Mike Loux
    Oct 13, 2021 at 20:04
  • 1
    The start of powershell to do this. Note the different commands for host and guest: gist.github.com/binki/321527635d550528f34549a2af48107d
    – binki
    Jan 28, 2022 at 0:05
  • Okay, so something worked but it's still not clear what the ACTUAL problem is. I had to set "Packet Coalescing" to "Disable" and that fixed the problem. But then I set it to "Enable" again to verify the behavior, but it didn't slow down again... I feel like the problem might start recurring after leaving it this way for a while. But at least I have a fix now! Sep 22, 2022 at 2:08
  • @BenRandall I know. That is as far as I get. Toggling/changing these settings resets something, but I don’t know what. It solved it that time and didn’t try to reproduce it, but when I did try to reproduce it I found that toggling back didn’t retrigger the issue. So I had tricked myself into thinking I had found a solution. However, I haven’t encountered this problem in a long while, so maybe Microsoft fixed it? (I am using Windows Insider so I probably have updates that others don’t).
    – binki
    Sep 30, 2022 at 16:31
  • This is the most thorough answer IMHO. Especially for mentioning setting inside the VM.
    – tromgy
    Dec 13, 2022 at 16:36
4

Disabling Large Send Offload Version 2 in the properties of the external vEthernet adapter helped me with this problem.

2

I don't know if my suggestion can satisfy what you're really asking but what I've done is instead of using external switches I create an internal one and configure it as a NAT virtual switch..that way I don't have to deal with external vSwitches.. if what you want is to provide internet access to guest VMs it works just fine. Here's a link in case you want to implement it..it's relatively easy. Hope that helps!

1
  • I would like to avoid having to do port forwarding from my host's IP if possible, a separate IP for the guest VM on the local network is kind of a must. At this point, it would be easier for me to just migrate to VirtualBox if there isn't an alternative. Oct 31, 2018 at 23:31
1

Adding another possible cause and solution for Virtual Switch causing very slow download speeds for the entire system (guests and host). This is on Windows 11. The Microsoft NDIS Capture extension was enabled by default. Simply turning this off (unchecking it) restored my normal network performance.

Hyper-V Virtual Switch Manager

1

My download speed through WiFi is 300Mbps before creating external v-switch. Afterwards, and without any tweaking, speed dropped to single digit. Disabling Packet Coalescing on WiFi adapter increased speed to about 50Mbps. By enabling Throughput Booster, however, speed is fully restored to 300Mbps.

enter image description here

0

I have a HYPER-V host (Server 2019 1809 & 1903) tested. The Windows 10 guest had fast SMB networking but extremely slow internet browsing/download speeds. My post is NOT related to WiFi may assist anyway.

My Linux guests were getting fast download speeds.

My Windows 10 were setup as Gen2 VM's. I created a Windows 10 VM as Gen1 VM, I'll call this W10G1.

W10G1 still had poor internet performance using 'Network Adapter' in the config. W10G1 had excellent internet performance using a 'Legacy Network Adapter'. No other changes were made.

It appears that there is a problem in the hosts 'Network Adapter' code, or the Windows 10 Guest's 'Network Adapter'.

I'd be happy for someone to double-check my results by doing a similar test.

0

I am just adding the screenshots to make it a little easier.

  1. Slow download - disable packet coalescing on the wifi card settings in device manager. enter image description here

  2. Slow upload - disable large send offload (for IPV4 and IPV6) from the external vethernet switch that is bridged (not the default vethernet switch). enter image description here

0

I turned off tcp-segmentation-offload in the VM with ethtool -K eth0 tcp-segmentation-offload off. I think you can also use ethtool -K eth0 tso off https://kb.vmware.com/s/article/2055140

Switching this setting off improved my upload and download speed.

You must log in to answer this question.

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