Networking 如何在NIC rx队列之间分配负载?

Networking 如何在NIC rx队列之间分配负载?,networking,linux-kernel,queue,nic,Networking,Linux Kernel,Queue,Nic,我使用的是带有igb驱动程序的千兆四端口intel i350 NIC。NIC已安装在具有32个cpu内核的Dell机器上,并运行Ubuntu 18.04。我正在使用的接口的名称是“eno2” 接口(即eno2)具有8个rx和8个tx队列。以下是乙醇-l eno2的结果: Channel parameters for eno2: Pre-set maximums: RX: 0 TX: 0 Other: 1

我使用的是带有igb驱动程序的千兆四端口intel i350 NIC。NIC已安装在具有32个cpu内核的Dell机器上,并运行Ubuntu 18.04。我正在使用的接口的名称是“
eno2

接口(即eno2)具有
8个rx
8个tx
队列。以下是乙醇-l eno2的结果:

Channel parameters for eno2:
   Pre-set maximums:
      RX:       0
      TX:       0
      Other:        1
      Combined: 8
   Current hardware settings:
      RX:       0
      TX:       0
      Other:        1
      Combined: 8
下面是ls/sys/class/net/eno2/queues/的结果:

drwxr-xr-x 2 root root 0 Sep 25 19:09 rx-0
drwxr-xr-x 2 root root 0 Sep 25 19:09 rx-1
drwxr-xr-x 2 root root 0 Sep 25 19:09 rx-2
drwxr-xr-x 2 root root 0 Sep 25 19:09 rx-3
drwxr-xr-x 2 root root 0 Sep 25 19:09 rx-4
drwxr-xr-x 2 root root 0 Sep 25 19:09 rx-5
drwxr-xr-x 2 root root 0 Sep 25 19:09 rx-6
drwxr-xr-x 2 root root 0 Sep 25 19:09 rx-7
drwxr-xr-x 3 root root 0 Sep 25 19:09 tx-0
drwxr-xr-x 3 root root 0 Sep 25 19:09 tx-1
drwxr-xr-x 3 root root 0 Sep 25 19:09 tx-2
drwxr-xr-x 3 root root 0 Sep 25 19:09 tx-3
drwxr-xr-x 3 root root 0 Sep 25 19:09 tx-4
drwxr-xr-x 3 root root 0 Sep 25 19:09 tx-5
drwxr-xr-x 3 root root 0 Sep 25 19:09 tx-6
drwxr-xr-x 3 root root 0 Sep 25 19:09 tx-7
我使用
ethtool-xeno2-weight 1
为所有这些工具赋予同等的权重

当我将流量转发到
eno2
时,一次只有一个接收队列工作。下面是当时
ethool-X eno2 | grep rx_queue_'[0-7]'*.\u数据包
的结果,假设t1:

 rx_queue_0_packets: 0
 rx_queue_1_packets: 1
 rx_queue_2_packets: 40251934
 rx_queue_3_packets: 0
 rx_queue_4_packets: 6
 rx_queue_5_packets: 3
 rx_queue_6_packets: 0
 rx_queue_7_packets: 1
如果我做另一个实验(假设在时间t2)并运行相同的命令,结果将如下所示:

 rx_queue_0_packets: 0
 rx_queue_1_packets: 1
 rx_queue_2_packets: 40251934
 rx_queue_3_packets: 0
 rx_queue_4_packets: 6
 rx_queue_5_packets: 76334041
 rx_queue_6_packets: 0
 rx_queue_7_packets: 1
如您所见,每次只有一个rx队列处于活动状态。我想知道如何在所有接收队列之间分配负载

顺便说一句,我还尝试了
echo ffffffff>/sys/class/net/neo2/queues/rx-0/rps_cpu
在所有32个cpu核上分配负载(使用所有rx队列),但没有成功

我还尝试使用
ethrtool
操纵rx和tx的数量,但也不起作用

我们将非常感谢您的帮助