Velocidad de Red HyperV Lento Desactivar VMQ
Velocidad de Red HyperV Lento Desactivar VMQ
Velocidad de Red HyperV Lento Desactivar VMQ
You’ve deployed your Virtual Machines on Hyper-V hosts that are running Windows Server
2012 or 2012 R2. Everything appears to be running swimmingly. However, you soon start
to experience the following symptoms:
Virtual machines randomly lose network connectivity. The network adapter appears to be
working in the virtual machine. However, you cannot ping or access network resources
from the virtual machine. Restarting the virtual machine does not resolve the issue
You cannot ping or connect to a virtual machine from a remote computer, you are only
able to connect via the Hyper-V console
When this occurs, the only fix is to restart the Hyper-V host. Restarting the VM does not
resolve the issue. This also does not address the underlying issue as to why this is occurring
in the first place.
VMQ
This issue has been around for sometime, with Microsoft acknowledging and discussing
ithere. However, this only refers to the “NetXtreme 1-gigabit network adapters”, which in
my case were not being used. Looking a little deeper, the issue affected a broader number
of network adapters, all of which used common components manufactured by a company
called Emulex. If you were using an affected adapter on a Windows Server 2012 or 2012
R2 Hyper-V host, and you had Virtual Machine Queue (VMQ) enabled, you could
potentially see this issue.
VMQ is only relevant if the network adapters used on your Hyper-V hosts are 10-gigabit or
faster. In my case, all adapters were 1-gigabit, meaning I could simply disable VMQ and
see if that resolved my problem. To check whether or not VMQ is enabled, run the
following:
Get-NetAdapterVmq
To disable:
Once you have disabled VMQ on the adapter, make sure you also disable it from the
Hardware Acceleration menu from Setting on all Virtual Machines
This resolved the issue for me.
How to Disable VMQ with PowerShell
https://community.spiceworks.com/how_to/124202-how-to-disable-vmq-with-powershell
VMQ can cause erratic virtual machine network performance when enabled, such as
latency and dropped network connections. This is especially common with Broadcom
Gigabit network adapters.
This how-to will show you how to disable VMQ on your Windows host server using
PowerShell.
2 Steps total
Step 1: Find the current VMQ status on your NIC's.
On your host, open up a PowerShell prompt as an Administrator and enter the following
command to return all of your installed NIC's and their VMQ status:
Get-NetAdapterVmq
Next, for any NIC listed in step 1 above with VMQ set to $true, run the below command to
disable VMQ. The NIC will become disconnected for approximately one second after you
run this command:
Symptoms
You have a Windows Server 2012 Hyper-V host that uses a Broadcom network adapter.
You create a virtual switch that binds to the network adapter.
You enable virtual machine queue (VMQ) on the Hyper-V host.
In this scenario, you experience poor network performance on the virtual machines that are
hosted on the Hyper-V host.
Cause
This is a known issue with Broadcom network adapter drivers when VMQ is enabled. The following
Broadcom network adapters are affected:
57712
57800
57810
57840
Resolution
Broadcom is aware of this issue and will release a driver update to resolve the issue. Until the
driver update is available, you can work around the issue by taking one of the following actions:
Disable VMQ on the Virtual Network Adapter by using the following Windows PowerShell
cmdlet:
Change the Media Access Control (MAC) address of the virtual switch.
If you use System Center Virtual machine Manager (SCVMM), SCVMM can automatically
assign a new MAC address.
https://portal.nutanix.com/#page/kbs/details?targetId=kA0600000008eNTCAY
Versions affected
AOS 4.5 AOS 3.5.x
Description
What is VMQ?
Virtual Machine Queue (VMQ) is a type of hardware packet filtering that delivers packet data from an outside
virtual machine network directly to a virtualized host operating system. VMQ works by allowing a Network
Interface Controller (NIC) to transfer incoming frames directly to the receive buffer of the NIC by using Direct
Memory Access (DMA). This simplifies the overhead involved in routing packets and reduces the need for
copying them from the management operating system (OS) to the virtual machine (VM). Instead of one
processor handling all of the network data exchanges, different processors can process packets for different
virtual machines with VMQ. This eliminates the dependence on driver-based traffic exchanges and improves
the transfer of network traffic.
Note: VMQ support was introduced in AOS version 4.5, and must only be enabled if the Intel driver is running
the version described in the Solution section of the following article.
Enable or disable VMQ by using the System Center Virtual Machine Management (SCVMM) utility or
PowerShell commands.
Note: Enabling VMQ might cause a short network disruption and you must enable VMQ during a maintenance
window.
Using SCVMM
Enable-NetAdapterVmq
Solution
Updating the NX Series Intel 10 GB Driver to Enable VMQ
Download the current driver version (the network driver that is qualified to have VMQ enabled has a release
date of July 7, 2014, or later).
Extract_Directory\PROWinx64\PROXGB\Winx64\NDIS64
Pnputil –i –a \\hvtest-smb\hvtest-library\NDIS64\*.inf
Example Output
Where the host is node4, CVM-D, and a VM Xen, notice the queue ID and processor core assignment.
Tags
Networking;Troubleshooting;Performance;Hyper V;Hardware;Resiliency