One of the big improvements in windows 2008R2 regarding the performance of networking in a Hyper-V environment is the implementation of Virtual Machines Queues (VMQ). VMQ uses hardware packet filtering to deliver packet data from the external network to your virtual servers directly and doing so, reduces the overhead of routing packets between the management OS and virtual servers.
To make us of VMQ you should be running Windows 2008R2, the physical NIC should support VMQ (or VMDq as Intel calls it) and your virtual machines should be running Windows 7, Windows Server 2008R2 or Windows 2008/Vista with the windows 2008R2 Integration Services installed. Older versions cannot make us of VMQ.
Most Intel 10Gig NIC do support VMDq. In the gigabit range you should go for an Intel ET, ET2, EF or VT Based card. Other vendors have announced they will support VMQ in the near future, at this moment I'm not aware of any vendor, other than Intel that has support for VMQ.
When VMQ is enabled a dedicated queue is established on the physical NIC for each virtual NIC that has requested a queue. Because queues are allocated on a first-come-first-served basis it would be a bad idea to enable VMQ for all your VM's. So identify your heavy traffic VM's and enable VMQ for those VM's only. Because VMQ works primary to improve receive side performance, providing the VM's that receive the most packets will benefit most from enabling VMQ.
To enable VMQ for a Virtual Machine, you first need to enable VMQ for a physical NIC. After you have enabled it you can enable VMQ on the Hyper-V Server. Finally you need to configure the virtual NIC of your virtual machine to use VMQ.
These steps will be covered in Part 2. In part 3 we will fine tune VMQ a bit more and see some results of VMQ in action. All I can say at this moment that VMQ is well worth having on your Hyper-V implementations.