Broadcom network adapters have a very big issue in Windows with Hyper-V. The issue is so big that at one point a year or so ago when I deployed a new Hyper V server with Broadcomm NICs my domain users were unable to use VPN properly due to a crippling network latency. I’m sure Broadcom is aware of this problem and the issue is documented all around the internet. The problem are Virtual Machine Queues, and on Broadcom network adapters they delay traffic to the VM and create latency issues.
There is a quick fix for that though. All you need to so is disable Virtual Machine Queues on your network adapter. It takes 5 min to fix.
To fix it, start up Powershell as an Administrator, then check to see if VMQ is enabled on your adapters, specifically anything by Broadcom.
Run the following command;
Run the Get-netAdapterVMQ
If you see True in the Enabled column, disable VMQ with the following command;
Disable-NetAdapterVmq -Name 'Adapter Name'
See the below example for reference. I even included an error where my name of the adapter wasn’t being caught because there was a space in the name. Use single quotes on the name to avoid this.
Windows PowerShell Copyright (C) 2014 Microsoft Corporation. All rights reserved. PS C:\Windows\system32> Get-netAdapterVMQ Name InterfaceDescription Enabled BaseVmqProcessor MaxProcessors NumberOfReceive Queues ---- -------------------- ------- ---------------- ------------- --------------- Front End Microsoft Network Adapter Mu...#2 True 0:0 16 Embedded LOM 1 Port 4 Broadcom NetXtreme Gigabit Eth... True 0:0 16 16 Embedded LOM 1 Port 3 Broadcom NetXtreme Gigabit E...#2 True 0:0 16 16 Embedded LOM 1 Port 2 Broadcom NetXtreme Gigabit E...#4 True 0:0 16 16 Embedded LOM 1 Port 1 Broadcom NetXtreme Gigabit E...#3 True 0:0 16 16 Back End(PA) Microsoft Network Adapter Mu...#3 False 0:0 0 Back End(NeoTech) Microsoft Network Adapter Mult... False 0:0 0 PS C:\Windows\system32> Disable-NetAdapterVmq -Name Front End Disable-NetAdapterVmq : A positional parameter cannot be found that accepts argument 'End'. At line:1 char:1 + Disable-NetAdapterVmq -Name Front End + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Disable-NetAdapterVmq], ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Disable-NetAdapterVmq PS C:\Windows\system32> Disable-NetAdapterVmq -Name 'Front End' PS C:\Windows\system32> Disable-NetAdapterVmq -Name 'Embedded LOM 1 Port 1' PS C:\Windows\system32> Disable-NetAdapterVmq -Name 'Embedded LOM 1 Port 2' PS C:\Windows\system32> Disable-NetAdapterVmq -Name 'Embedded LOM 1 Port 3' PS C:\Windows\system32> Disable-NetAdapterVmq -Name 'Embedded LOM 1 Port 4' PS C:\Windows\system32> Get-netAdapterVMQ Name InterfaceDescription Enabled BaseVmqProcessor MaxProcessors NumberOfReceive Queues ---- -------------------- ------- ---------------- ------------- --------------- Front End Microsoft Network Adapter Mu...#2 False 0:0 16 Embedded LOM 1 Port 4 Broadcom NetXtreme Gigabit Eth... False 0:0 16 16 Embedded LOM 1 Port 3 Broadcom NetXtreme Gigabit E...#2 False 0:0 16 16 Embedded LOM 1 Port 2 Broadcom NetXtreme Gigabit E...#4 False 0:0 16 16 Embedded LOM 1 Port 1 Broadcom NetXtreme Gigabit E...#3 False 0:0 16 16 Back End(PA) Microsoft Network Adapter Mu...#3 False 0:0 0 Back End(NeoTech) Microsoft Network Adapter Mult... False 0:0 0
Leave a Reply