Knowledge Base

Windows Server: Slow Network Performance on Hyper-V Virtual Machines with Virtual Machine Queue (VMQ) Enabled


This article provides information on resolving slow network performance on Hyper-V virtual machines running on a Windows Server 2008 R2, Server 2012 or Server 2012 R2 host.

1. Problem Description

Hyper-V virtual machines (VMs) hosted on a Windows Server 2008 R2 or Windows Server 2012 (R2) server may exhibit slow network performance if Broadcom network adapters are installed in the host. This can happen if Virtual Machine Queue (VMQ) is enabled on the physical network adapter used by the VMs.

VMQ is designed to improve network performance on VMs by expediting the transfer of network data from the physical adapter to the appropriate VM, but it appears to have the opposite effect on certain Broadcom network adapters, resulting in significantly decreased network performance on all VMs that utilize a virtual switch bound to an affected adapter.

The known workaround is to disable VMQ on the affected network adapters or change the MAC addresses of the corresponding virtual switches. However, it is possible that Broadcom has released an update to fix the issue since this article was written. Therefore, the first step in troubleshooting the issue should be to ensure that the Broadcom adapter driver and firmware are up to date on the Hyper-V host.


If the adapter driver and firmware are up to date and the problem persists, virtual switches can be bound to an unaffected network adapter, if one exists on the host. If no such adapter exists, there are two possible workarounds:

  • Disable VMQ on affected virtual switches or physical network adapters.
  • Change the MAC address of all affected virtual switches.

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

For more information on this issue, see Poor network performance on virtual machines on a Windows Server 2012 Hyper-V host if VMQ is enabled.
For more information on VMQ, see Using Virtual Machine Queue.


Need more help?
Find additional PowerEdge and PowerVault articles

Visit and ask for support in our Communities

Create an online support Request




Article ID: SLN132131

Last Date Modified: 01/19/2017 10:44 AM


Rate this article

Accurate
Useful
Easy to understand
Was this article helpful?
Yes No
Send us feedback
Feedback shows invalid character, not accepted special characters are <> () &#92;
Sorry, our feedback system is currently down. Please try again later.

Thank you. Your feedback has been sent.