About multi-queue functionality¶
Use multi-queue functionality to scale network throughput and performance on virtual machines (VMs) with multiple vCPUs.
By default, the queueCount value, which is derived from the domain XML, is determined by the number of vCPUs allocated to a VM. Network performance does not scale as the number of vCPUs increases. Additionally, because virtio-net has only one transmit and receive queue, guests cannot send or receive packs in parallel.
Note
Enabling virtio-net multi-queue does not offer significant improvements when the number of vNICs in a guest instance is proportional to the number of vCPUs.
Known limitations¶
- Message signaled interrupt (MSI) vectors are still consumed if
virtio-netmulti-queue is enabled in the host but not enabled in the guest operating system by the administrator. - Each
virtio-netqueue consumes 64 KiB of kernel memory for thevhostdriver.
Enabling multi-queue functionality¶
You can enable multi-queue functionality for interfaces configured with a VirtIO model.
Procedure
-
Set the
networkInterfaceMultiqueuevalue totruein theVirtualMachinemanifest file of your VM to enable multi-queue functionality: -
Save the
VirtualMachinemanifest file to apply your changes.