我怎样才能产生40gbps的流量?

我怎样才能产生40gbps的流量?

我正在使用 Intel X710 以太网控制器(4 x 10G 端口)和 DPDK + DPDK pktgen 来生成 40gbps 流量。我可以用一个端口和一个核心达到 10Gbps,用两个端口和两个核心达到 20Gbps,但不能用四个核心和四个端口达到 40gbps。(28gbps 是极限)

我检查了 PCIe 3.0 插槽、内存带宽和 CPU 的插槽位置,但似乎没什么问题。

这可能是什么问题?

使用Intel xeon e5 2690 x2、sun microsystem 主板X9DRG-QF、112GB 内存。

我使用的确切命令是sudo -E ./app/x86_64-native-linuxapp-gcc/pktgen -l 0,1,2,3,4 -n 8 --proc-type primary -- -N -T -P -m 1.0 -m 2.1 -m 3.2 -m 4.3 -f themes/black-yellow.theme.

cpu_layout.py 的输出是

cores =  [0, 1, 2, 3, 4, 5, 6, 7]
sockets =  [0, 1]

       Socket 0        Socket 1       
       --------        --------       
Core 0 [0, 16]         [8, 24]        
Core 1 [1, 17]         [9, 25]        
Core 2 [2, 18]         [10, 26]       
Core 3 [3, 19]         [11, 27]       
Core 4 [4, 20]         [12, 28]       
Core 5 [5, 21]         [13, 29]       
Core 6 [6, 22]         [14, 30]       
Core 7 [7, 23]         [15, 31]

DPDK:17.11.3 软件包:3.5.0

谢谢。

答案1

我有一台 X710,配备 4 * 10G 和 E5-2699v4,运行频率为 2.2Ghz。我能够生成 40Gbps 的流量,数据包大小为 128 字节。如果我使用 64 字节数据包,我能够生成 30Mpps。

设置我已经在所需的 CPU 上使用 isolcpus 和 nohz_full,X710 和核心位于相同的 NUMA 上,并为端口“-m [1:2].0, [3:4].1, [5:6].2, [7:8].3”分配单独的 rx|tx 线程。

相关内容