Where is Multiqueue?

Stereoscope

Member
Jan 27, 2024
78
6
8
I'm reading the manual and there's a section on mutliqueue but it only really explains what it does and when to use it. I can't find any info (I don't have Proxmox installed right now to play around with it). In this thread https://forum.proxmox.com/threads/network-problem.69006/ you can clearly see the Multiqueue drop down but I don't really see it in any videos on YouTube or described anywhere. Mostly I don't see this drop down and only have seen it in two screenshots from totally unrelated blog posts or as above Proxmox forum discussion. Why is it not present in most situations? Do you need to enable more than 1 core in the CPU section for it to appear?
 
Last edited:
Mostly I don't see this drop down and only have seen it in two screenshots from totally unrelated blog posts or as above Proxmox forum discussion. Why is it not present in most situations?
It's an advanced option, i.e. it only shows up when the Advanced checkbox in the bottom of the network configuration dialog is ticked.

Taken from our documentation:
If you are using the VirtIO driver, you can optionally activate the Multiqueue option. This option allows the guest OS to process networking packets using multiple virtual CPUs, providing an increase in the total number of packets transferred.

When using the VirtIO driver with Proxmox VE, each NIC network queue is passed to the host kernel, where the queue will be processed by a kernel thread spawned by the vhost driver. With this option activated, it is possible to pass multiple network queues to the host kernel for each NIC.
I think that explains that already pretty well. By default, you have one queue in the kernel per VM per network interface processing packets. Setting the multiqueue parameter to say N means that there are then N queues created, meaning higher throughput can be achieved by processing these queues in parallel.

If you are interesting in more details, I'd suggest this slidedeck by David S. Miller: http://vger.kernel.org/~davem/davem_nyc09.pdf
This explains that feature bit more in depth.