Share via

Using Virtual Machine Queue

Applies To: Windows Server 2008 R2

Virtual machine queue (VMQ) is a feature available to computers running Windows Server 2008 R2 with the Hyper-V server role installed, that have VMQ-capable network hardware. VMQ uses hardware packet filtering to deliver packet data from an external virtual machine network directly to virtual machines, which reduces the overhead of routing packets and copying them from the management operating system to the virtual machine.


The term management operating system is new in Windows Server 2008 R2 and refers to the operating system that is running the Hyper-V server role. The management operating system also provides the virtual machines with access to the hardware resources it owns.

When VMQ is enabled, a dedicated queue is established on the physical network adapter for each virtual network adapter that has requested a queue. As packets arrive for a virtual network adapter, the physical network adapter places them in that network adapter’s queue. When packets are indicated up, all the packet data in the queue is delivered directly to the virtual network adapter. Packets arriving for virtual network adapters that don’t have a dedicated queue, as well as all multicast and broadcast packets, are delivered to the virtual network in the default queue. The virtual network handles routing of these packets to the appropriate virtual network adapters as it normally would.

Requirements for VMQ

  • The management operating system must be running Windows Server 2008 R2.

  • The physical network adapter handling the traffic on the management operating system must support VMQ.

  • The virtual machines must be running Windows 7or Windows Server 2008 R2 or running Windows Server 2008 or Windows Vista with the Integration Services Setup Disk installed. Virtual machines running earlier versions of Windows cannot use VMQ.

When to use VMQ

VMQ provides improved networking performance to the management operating system as a whole rather than to a specific virtual machine. For the best results, treat queues as a scarce, carefully managed resource. Because queues are allocated to virtual machines on a first-come, first-served basis, making all virtual machines eligible for a queue may result in some queues being given to virtual machines with light traffic instead of those with heavier traffic. Enable VMQ only for those virtual machines with the heaviest inbound traffic. Because VMQ primarily improves receive-side performance, providing queues for virtual machines that receive the most packets provides the most benefit to overall management operating system performance.


In System Center Virtual Machine Manager (VMM), use the Enable virtual network optimizations check box on the Hardware Configuration tab of the Virtual Machine Properties dialog box to enable and disable VMQ. Select the check box to enable VMQ for those virtual machines with the heaviest network load and clear the check box to disable VMQ for other virtual machines.

See Also


Using TCP Chimney Offload
Using Virtual Machine Chimney
Using Receive Side Scaling
Using NetDMA