Continuing the Networking Series with Virtual Machine Queues.
In this table you will find what registry keys and settings must be configured to make it work.
Again, remember that you can use this script to validate these settings.
Virtual Machine Queue
OS Level feature
Collector Script = AdvancedNet_Features.ps1
Commands to Enable or Disable TCP Chimney Offload
THESE REGISTRY KEYS MUST BE CONFIGURED ON PARENT PARTITION HKLM\SYSTEM\CurrentControlSet\services
NIC adapter Level feature
Enabling Virtual Machine Queue for a Physical Network Adapter (Intel)
THESE REGISTRY KEYS MUST BE ENABLED ON PARENT PARTITION
Registry keys for Intel
Some drivers that support VMQ and RSS cannot use these features simultaneously. Such drivers cannot switch between RSS support and VMQ support without reinitializing the driver. The operating system uses the RSS feature when the NIC is bound to the TCP/IP stack, or the VMQ feature when the NIC is bound to the Hyper-V virtual switch driver. Because the NIC is not disabled and then re-enabled when it is unbound from the TCP/IP stack and bound to the Hyper-V driver (or the reverse), it is not possible for such NICs to switch between RSS and VMQ automatically.
A miniport driver that supports RSS and VMQ simultaneously reads the *RSS and *VMQ keywords and it reports the current RSS and VMQ capabilities based on those keyword settings. Such a driver never uses the *RssOrVmqPreference keyword.
A miniport driver that does not support RSS and VMQ simultaneously must read a hidden keyword *RssOrVmqPreference before it reports its current capabilities to NDIS. If the value of this keyword is zero, the miniport driver reports that it supports RSS. If the value of this keyword is one, the miniport driver reports that it supports VMQ. The default value is zero.
During miniport adapter initialization, the miniport driver reads the *RssOrVmqPreference registry keyword. If *RssOrVmqPreference is either not present or it is set to zero the miniport driver reports the RSS support that is specified in the *RSS keyword and VMQ is disabled. Otherwise, the miniport driver reports the VMQ support that is specified in the *VMQ keyword and RSS is disabled
WMI Level Feature
Virtual Switch Ports Enabled for each VM
Configuring Virtual Networks in VMM http://technet.microsoft.com/en-us/library/ee236499.aspx
THIS SETTING MUST BE CONFIGURED ON PARENT PARTITION (Enabled by default) or ON SCVMM Property inside WMI Class Msvm_SwitchPort (VMQOffloadWeight property)
Get-WmiObject -Namespace ROOT\virtualization -Class Msvm_VirtualSwitch |Select
Get-WmiObject -Namespace ROOT\virtualization -Class
Msvm_SwitchPort | Select SystemName,VMQOffloadWeight
The VM Virtual switch port must be enabled, i.e., the VMQ Offload Weight setting in the VM Switch port associated with that VM must be greater than zero. By default the VMQOffloadWeight on all virtual switch ports are created with a weight of 100. Checking the “Enable virtual network optimizations” checkbox in SCVMM enables the port for that VM. Unchecking the same box disables the port for that VM. (This checkbox is located on the hardware Configuration tab of the Virtual Machine Properties management screen.) This setting can also be controlled through the WMI interface. Documentation on how to use WMI to manage the VMQ Offload Weight setting is available at http://msdn.microsoft.com/en-us/library/cc136902(VS.85).aspx
VMQ Tunning with interrupt coalescing
If you are configuring more than one network adapter, each adapter should have a different value assigned to the *RssBaseProcNumber sub-key with sufficient difference so that there are no overlapping RSS processors. For example, if Network Adapter A has a value of 0 assigned to *RssBaseProcNumber and a value of 3 assigned to *MaxRssProcessors, Network Adapter B should have an *RssBaseProcNumber of 4.
Required Hyper-V OS Version
VMQ is only supported Since Windows Server 2008 R2 Hyper-V Hosts
Legacy Netwok Adapters are not VMQ compatible
Only Synthetic Network adapters can take benefit from VMQ
Required Guest OS Versions
Only W7 and Windows Server 2008 R2 Guest VMs are VMQ compatible by default. Windows Vista and Windows Server 2008 Guests can use VMQ only with the Integration Services Installed. Earlier versions of Windows Guests will not use VMQ
NIC Speed ( 10GB )
Almost all VMQ NIC adapters are 10GB adapters. May not be enabled on 1GB NIC adapters
VMQ and Teaming requires Intel ProSet 15.0 or higher
VMQ and Teaming are supported only with Intel ProSet version 15.0 or higher
Chimney and VMQ are not compatible
Chimney should be disabled if VMQ is also used. If both are enabled Chimney will be disabled by default. Only Intel cards by the moment
This is incredibly fascinating. Exactly how do I validate these settings