:_mod-docs-content-type: ASSEMBLY
[id="virt-about-multi-queue"]
= About multi-queue functionality
include::_attributes/common-attributes.adoc[]
:context: virt-about-multi-queue

toc::[]

[role="_abstract"]
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.
====

[id="known-limitations_{context}"]
== Known limitations

* Message signaled interrupt (MSI) vectors are still consumed if `virtio-net` multi-queue is enabled in the host but not enabled in the guest operating system by the administrator.
* Each `virtio-net` queue consumes 64 KiB of kernel memory for the `vhost` driver.

include::modules/virt-enabling-multi-queue.adoc[leveloffset=+1]
