Can anyone tell me what command i run to determine if my 10G NIC is running in single RX-TX queue mode or multiqueue? It looks like it only has 1 RX/TX queue according to cat /proc/interrupts
root@hostname:scripts]# cat /proc/interrupts | grep ens1f0
94: 360389979 0 0 0 184 0 330 0 0 0 0 0 0 0 0 0 0 169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge ens1f0-TxRx-0
95: 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge ens1f0
If it is operating in single queue mode, how would I enable multiqueue ?
will display the status of queues associated with an interface, if that interface's driver supports such a thing. In ethtool-land, multiqueue is indicated by "channels".
If you see responses from ethtool like:
then your NIC driver doesn't support multiqueue. If you think it should, make sure you are using the best-matched driver for your NIC, upgrade to the latest stable kernel to see if that feature has been enabled, and check if there are special firmware requirements for the NIC.
Also, more information from the writer of https://blog.cloudflare.com/how-to-achieve-low-latency/ might be useful for 10Gb Ethernet tuning for low-latency.
Cheers! Hope that helps.
The documentation at https://www.kernel.org/doc/Documentation/networking/multiqueue.txt has a number of useful concepts and uses the
tc
command to manipulate the available multiqueue parameters. Without knowing your intentions, it's difficult to give a specific answer, but this information should get you pointed in the right direction.You can see how many queues that you have available with:
ethtool -S [interface]
If you have multiple queues enabled, they will show up. In addition you can watch traffic on the rx (tx) queues with the watch command:
watch -d -n 2 "ethool -S [interface] | grep rx | grep packets | column
For Filtering Queues, use:
tc qdisc show dev [interface]
If you have ADq or DCB queues they will show up here.