Virtual Machine Multiple Queue (VMMQ)
Virtual Machine Multiple Queues (VMMQ), formerly known as Hardware vRSS, is a NIC offload technology that provides scalability for processing network traffic of a VPort in the host (root partition) of a virtualized node. In essence, VMMQ extends the native RSS feature to the VPorts that are associated with the physical function (PF) of a NIC including the default VPort.
VMMQ is available for the VPorts exposed in the host (root partition) regardless of whether the NIC is operating in SR-IOV or VMQ mode. VMMQ is a feature available in Windows Server 2016.
Operating System(s): Windows Server 2016
Mellanox ConnectX-3/ConnectX-3 Pro VPI adapter card family
Available only for Ethernet (no IPOIB)
On the Driver Level
To enable/disable VMMQ:
Go to: Display Manager → Network adapters → Mellanox ConnectX-3 Ethernet Adapter → Properties → Advanced tab → Virtual Switch Rss.
Select Enabled or Disabled.
To enable/disable VMMQ using a Registry Key:
Set the RssOnHostVPorts registry key in the following path to either 1 (enabled) or 0 (disabled)
HKLM\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\<nn>\* RssOnHostVPorts
On a VPort
To enable VMMQ on a VPort:
PS $ Set-VMNetworkAdapter -Name "Virtual Adapter Name"
-VmmqEnabled $true
To disable VMMQ on a VPort:
PS $ Set-VMNetworkAdapter -Name "Virtual Adapter Name"
-VmmqEnabled $false
Since the VMMQ is an offload feature for vRss, vRss must be enabled prior to enabling VMMQ.
The requested number of queues for a virtual network adapter (vPort) can be set by invoking this PS cmdlet:
PS $ Set-VMNetworkAdapter -Name "VMName"
-name "Virtual Adapter Name"
-VmmqQueuePairs <number>
The number provided to this cmdlet is the requested number of queues per vPort. However, the OS might decide to not fulfill the request due to some resources and other factors considerations.