Update: This method is still applicable for latest Windows 2016 Server Hyper-V if the physical network cards on the host do not support VMQ feature. By default, once you installed Windows 2012 R2 or Windows 2016 Hyper-V role on the server, the VMQ feature would be enabled on on the physical server. If the physical NIC do not support ( it is a hardware feature) VMQ, then it is going to slow down the network inside the virtual machines. Microsoft says there are particular NICs and manufacturers got affected by this, and possible driver update could fix, but if nothing works for you, better follow this guide and disable VMQ feature to fix very slow network performance inside Windows 2012 R2/2016 Hyper-V guest virtual machines.
I got the chance to install and setup Windows 2012 R2 Hyper-V on 3 node cluster with Dell R620 servers. Installation went smoothly and most of the configuration done by based on Windows 2012 R2 Hyper-V best practice checklist from Microsoft blog. During the initial testing and performance analyzing time, I have noticed very slow network performance inside virtual machine guest OS. Below method helped me to solve the issue and bring back the network speed to normal in Windows 2012 R2 Hyper-V server.
The Dell R620 came with 4 numbers of Gigabit network adapters. I have used Windows 2012 R2 software based teaming to team two physical NICs. Then created an external virtual switch in Hyper-V manager with teamed network adapter. The network performance in the host server through teamed network was excellent, but in guest VMs it was very slow.
Though there are several solutions and suggestions available on the internet to fix this, the VMQ technique worked for me. After disabling VMQ on physical NICs on the host server, the network performance inside virtual machines started performing well. VMQ is one of the great features to efficiently use network traffic if the host server’s NIC supports VMQ feature.
If the server hardware (NIC) doesn’t support VMQ feature, better disable it before deploying virtual machines; otherwise, you will be facing slow network in guest VMs in Windows 2012 R2/2016 Hyper-V.
1) Open properties of the physical network card on the server, select Configure.
2) On Advanced tab, select Virtual Machine Queues (VMQ) and disable it as shown below.
It is recommended to restart the host server after making this changes, and I’m sure the network performance of virtual machines on Windows 2012 R2/2016 Hyper-V would be back to normal speed.