Skip navigation

Q: Are VMDq and SR-IOV performing the same function?

A: Yes and no. Both Virtual Machine Device Queues (VMDq) and SR-IOV are technologies to improve the network performance for virtual machines (VMs) and to minimize the overhead and CPU bottlenecks on a VM manager such as the Hyper-V Windows Server management partition. However, they do it in different ways.

With VMDq, the VM manager can assign a separate queue in the network adapter to each VM, which removes overhead on the virtual switch sorting and routing for where the packets need to go. However, the VM manager and the virtual switch still have to copy the traffic from the VMDq to the VM, which, for Hyper-V, travels over the kernel-mode memory bus.

Additionally because there are multiple queues, the incoming load can be spread over multiple processor cores removing any potential processing bottleneck. VMDq reduces the work on the virtual switch and enables better scalability, but the traffic still flows through the virtual switch and over normal data transports (VMBus) as shown in the screen shot below.

networkoptimizationvmdqsriovsml

SR-IOV works similarly to VMDq, but instead of creating a separate queue for each VM, it actually creates a separate Virtual Function (VF) that acts like a separate network device for each VM. The VM communicates directly with it, completely bypassing the virtual switch and any load-copying data on the VM manager, since SR-IOV uses Direct Memory Accesss (DMA) between the VF and the VM.

SR-IOV offers the best network performance but requires support on the hypervisor, motherboard, and network adapter and might affect portability of VMs between hardware capable of using SR-IOV and hardware incapable of using SR-IOV.

 

Still got issues? Check out all of the FAQs for Windows by John Savill.

Hide comments

Comments

  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
Publish