How to Configure Hyper-V Network Adapter Virtual Machine Queue (VMQ) in Windows 11 Using PowerShell

In high-throughput enterprise virtualization environments, network performance on guest virtual machines can encounter severe bottlenecks if the host system processes all incoming network traffic on a single CPU core. On high-speed 10GbE, 25GbE, and 40GbE physical network adapters, the volume of incoming packets can saturate a single processor core with network interrupts and Deferred Procedure Calls (DPCs), causing packet drops, increased latency, and CPU core spikes. To overcome this limitation, Microsoft Hyper-V implements Virtual Machine Queue (VMQ). VMQ uses hardware packet filtering in the physical network interface card (NIC) to deliver incoming packets destined for a specific virtual machine directly into dedicated memory queues processed by different host CPU cores. In Windows 11 and Windows Server Hyper-V environments, administrators manage and fine-tune VMQ allocation using PowerShell.

Understanding Hyper-V Virtual Machine Queue (VMQ) Architecture

Virtual Machine Queue offloads packet sorting and routing from the Hyper-V Virtual Switch software stack directly into the physical network adapter hardware:

  • Hardware Direct Memory Access (DMA): The physical NIC inspects the destination MAC address of incoming Ethernet frames. When frames match a specific virtual machine’s MAC address, the NIC uses DMA to write packets directly into that VM’s allocated host memory buffer, bypassing the virtual switch software routing logic.
  • Multi-Core Interrupt Distribution: The physical NIC assigns separate interrupt lines (MSI-X) to each queue, allowing the host operating system to distribute packet processing across different host logical processors (CPUs).
  • VmqWeight: A relative prioritization weight assigned to a virtual machine’s virtual network adapter (ranging from 0 to 100). Setting VmqWeight to 0 disables VMQ for that adapter, while non-zero values prioritize which VMs receive hardware queues when physical NIC queues are exhausted.
  • Physical Queue Scarcity: Physical network adapters support a finite number of hardware queues (typically 16, 32, or 64 queues per port). When more VMs exist than available hardware queues, Hyper-V dynamically allocates queues based on adapter VmqWeight.

Inspecting VMQ Capabilities on Physical Host Network Adapters

Before configuring VMQ on virtual machines, verify that your physical network adapters support VMQ and that it is globally enabled on the host. Launch an elevated PowerShell console (Run as Administrator):

Get-NetAdapterVmq

A typical output from an enterprise 10GbE adapter displays:

Name               InterfaceDescription                 Enabled BaseVcpuQueue NumberOfReceiveQueues
----               --------------------                 ------- ------------- ---------------------
Ethernet 1         Intel(R) Ethernet Controller X550-T2    True             2                    32
Ethernet 2         Intel(R) Ethernet Controller X550-T2    True            18                    32

Notice that Enabled is True, with 32 hardware receive queues available per physical port.

Inspecting VMQ Configuration on Virtual Machine Adapters

To inspect the VMQ settings of virtual network adapters connected to virtual machines, execute the Get-VMNetworkAdapter cmdlet:

Get-VMNetworkAdapter -VMName "Web-Proxy-01" | Select-Object VMName, Name, VmqWeight, VmqUsage | Format-List

A typical output shows:

VMName    : Web-Proxy-01
Name      : Network Adapter
VmqWeight : 100
VmqUsage  : 1

The VmqUsage property indicates how many physical hardware queues are actively allocated to this virtual adapter (1 indicates active hardware queue acceleration, while 0 indicates software-fallback processing).

Configuring VMQ Prioritization with Set-VMNetworkAdapter

Administrators tune VMQ allocation using the Set-VMNetworkAdapter cmdlet. In high-density virtualization environments hosting dozens of virtual machines, prioritized workloads (such as database engines or web proxies) should receive priority over low-traffic utility guests.

Example 1: Prioritizing a Mission-Critical Workload

To guarantee that a high-traffic SQL database virtual machine receives top priority for physical hardware queues:

Set-VMNetworkAdapter -VMName "SQL-Prod-01" -VmqWeight 100

Example 2: Disabling VMQ on Low-Traffic or Diagnostic VMs

To conserve physical hardware queues for high-throughput production servers, disable VMQ on lightweight utility guests (such as domain controllers or jumpboxes):

Set-VMNetworkAdapter -VMName "DC-Utility-01" -VmqWeight 0

Setting -VmqWeight 0 forces the adapter into software routing mode, immediately freeing its physical hardware queue for high-priority virtual machines.

Troubleshooting Broadcom VMQ Packet Loss Issues

Historically, specific Broadcom NetXtreme Gigabit Ethernet network adapters suffered from buggy firmware drivers that resulted in dropped incoming packets and severe network degradation when VMQ was enabled on 1GbE adapters. While 10GbE+ adapters operate reliably, if you encounter packet loss on older 1GbE Broadcom NICs:

# Disable VMQ at the physical host adapter level
Disable-NetAdapterVmq -Name "Ethernet 1"

For modern enterprise infrastructure running on Intel, Mellanox, or Marvell 10GbE/25GbE controllers, VMQ should remain fully enabled to maintain optimal throughput.

Monitoring Active Hardware Queue Allocations in Real Time

To audit which virtual machines are actively holding physical NIC queues across your entire Hyper-V host:

Get-NetAdapterVmqQueue -Name "Ethernet 1" | Select-Object QueueId, MacAddress, VmId, VmName | Format-Table

This command lists active hardware queue indices alongside the assigned virtual machine names, allowing administrators to verify hardware offload distribution at a glance.

By leveraging PowerShell’s *-VMNetworkAdapter and *-NetAdapterVmq cmdlets, virtualization administrators balance hardware packet processing across host CPU cores, eliminate network interrupt latency, and optimize multi-gigabit throughput across enterprise Hyper-V deployments.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.