Enabling Virtual Machine Queue on the Management Operating System
Applies To: Windows Server 2008 R2
Using VMQ requires the presence of registry sub-keys and values on the management operating system. The registry sub-keys enable VMQ on the virtual network. A different registry sub-key is required for 10 Gbps physical network adapters and for physical network adapters less than 10 Gbps (typically 1 Gbps). The network adapters must support VMQ. If the management operating system computer has a mix of network adapters—for example, both a 1 Gbps network adapter and a 10 Gbps network adapter—and both are capable of VMQ, you can add both sub-keys and values.
Warning
Incorrectly editing the registry might severely damage your system. Before making changes to the registry, you should back up any valued data on the computer.
Registry sub-keys for VMQ
Registry subkey | Purpose | Type | Values |
---|---|---|---|
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ |
Enable or disable VMQ on all 10 Gbps physical network adapters |
REG_DWORD |
0=System default (disabled for Windows Server 2008 R2) |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ |
Enable or disable VMQ on all physical network adapters less than 10 Gbps |
REG_DWORD |
0=System default (disabled for Windows Server 2008 R2) |
To enable VMQ on a management operating system with physical network adapters less than 10 Gbps
To open an elevated Command Prompt window, click Start, point to All Programs, click Accessories, right-click Command Prompt, and then click Run as administrator.
Type reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\VMSMP\Parameters /v BelowTenGigVmqEnabled /t REG_DWORD /d 1 /f and then press ENTER.
Warning
Virtual machine queues should not be used on 1 Gbps network adapters without interrupt coalescing. Modify the registry for interrupt coalescing according to the instructions in Tuning VMQ with interrupt coalescing.
To enable VMQ on a management operating system with 10 Gbps physical network adapters
To open an elevated Command Prompt window, click Start, point to All Programs, click Accessories, right-click Command Prompt, and then click Run as administrator.
Type reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\VMSMP\Parameters /v TenGigVmqEnabled /t REG_DWORD /d 1 /f and then press ENTER.
Tuning VMQ with interrupt coalescing
The network adapter delivers interrupts to the Management Operating system for each VMQ on the processor based processor VMQ affinity. If the interrupts are spread across many processors, the number of interrupts delivered can grow substantially, until the overhead of interrupt handling can outweigh the benefit of using VMQ. To reduce the number of interrupts used, Microsoft has encouraged network adapter manufacturers to design for interrupt coalescing, also called shared interrupts. Using shared interrupts, the network adapter processes multiple queues with the same processor affinity in the same interrupt. This reduces the overall number of interrupts. At the time of this publication, all network adapters that support VMQ also support interrupt coalescing.
To take advantage of interrupt coalescing, it is recommended that you create registry sub-keys and values according to the instructions in this section.
To enable interrupt coalescing
To open an elevated Command Prompt window, click Start, point to All Programs, click Accessories, right-click Command Prompt, and then click Run as administrator.
Type regedit, and then press ENTER.
In the Registry Editor, open the sub-key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318 and locate the sub-key for the network adapter you want to work with. Sub-keys are four numbers (for example 0003 and 0010). Make a note of it. You will need it later in this procedure.
Return to the elevated command prompt window.
At the command prompt, type the following commands based on the type of network adapter you are using. For each command, substitute the sub-key from earlier in this procedure for ID.
For 1 Gbps network adapters, type **reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318\**ID /v *MaxRssProcessors /t REG_DWORD /d 1 /f, press ENTER, and then type **reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318\**ID /v *RssBaseProcNumber /t REG_DWORD /d 0 /f, and then press ENTER.
For 10 Gbps network adapters, type **reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318\**ID /v *MaxRssProcessors /t REG_DWORD /d 3 /f, press ENTER and then type **reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318\**ID /v *RssBaseProcNumber /t REG_DWORD /d 0 /f
Important
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.