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
http://technet.microsoft.com/es-es/library/gg162682(WS.10).aspx |
THESE REGISTRY KEYS MUST BE CONFIGURED ON PARENT PARTITION HKLM\SYSTEM\CurrentControlSet\services \VMSMP\Parameters\TenGigVmqEnabled
HKLM\SYSTEM\CurrentControlSet\services \VMSMP\Parameters\BelowTenGigVmqEnabled |
NIC adapter Level feature
Collector Script = AdvancedNet_Features.ps1
Enabling Virtual Machine Queue for a Physical Network Adapter (Intel) http://www.intel.com/support/network/sb/CS-030993.htm?wapkw=(hyper-v) |
THESE REGISTRY KEYS MUST BE ENABLED ON PARENT PARTITION Registry keys for Intel NICs
"\SYSTEM\CurrentControlSet\Control \Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\xxxx\*VMQ"
"\SYSTEM\CurrentControlSet\Control \Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\xxxx\*VMQLookaheadSplit”
"\SYSTEM\CurrentControlSet\Control \Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\xxxx\*RssOrVmqPreference"
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 http://msdn.microsoft.com/en-us/library/ff571048(v=vs.85).aspx |
WMI Level Feature
Virtual Switch Ports Enabled for each VM http://technet.microsoft.com/es-es/library/gg162685(WS.10).aspx
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 ElementName, name
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 |
NIC adapter Level feature VMQ Tunning with interrupt coalescing
Collector Script = AdvancedNet_Features.ps1
http://technet.microsoft.com/es-es/library/gg162696(WS.10).aspx |
THESE REGISTRY KEYS MUST BE ENABLED ON PARENT PARTITION
"\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\xxxx\*MaxRssProcessors”
"\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\xxxx\*RssBaseProcNumber"
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
Enabling Virtual Machine Queue for a Physical Network Adapter (Intel) http://www.intel.com/support/network/sb/CS-030993.htm?wapkw=(hyper-v) |
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
Hello,
This Network Optimisations is compatible for Hyper-V R3 ?
And your script is compatible with Windows 2012 ?
Regards
Guillaume
** Newly updated to include 2012 R2 Best Practices. See 11/03/2013 blog regarding R2 updates by