Intel82599网卡TCP/IP与FSDK对比测试

最近要学习DPDK技术,其中要用到万兆网卡,手头只有Intel 82599 10G网卡,DPDK测试还没跑起来,先做了传统TCP/IP以及商用的FSDK性能测试,见下文,后续等IXIA的网络分析仪会用了再做DPDK性能测试吧。


一、TCP/IP性能测试

1、硬件环境

a)      处理器,Intel Xeno E5 -2660 V3处理器(2.60GHz)x2

b)      内存,128G(32GX4)

c)      主板,S7070A2NR-B,PCIe_4x16(CPU0),PCIe_2x16(CPU1)

d)      网卡,Intel 82599 10Gb网卡x2

e)      交换机,盛科(最大支持100G)

2、软件环境

操作系统,中标麒麟kylin3.3

内核版本,3.10.0-514.16.1.rt56.437.el7.x86_64

3、测试环境

Intel82599网卡TCP/IP与FSDK对比测试_第1张图片

图1 TCP/IP性能测试环境

考虑到目前仅有四个光模块,两块网卡通过交换机相连,数据包从一块网卡的MAC1发送到另一块网卡的一个MAC2。

4、测试工具

Iperf-3.2

5、测试结果

5.1、TCP测试

1)测试方法:从MAC1向MAC2连续发送TCP数据包,每次持续时间20秒,使用iperf记录网络吞吐量。

 

2Server端命令:iperf –s –B 192.168.100.121

影响因素:无,绑定MAC2网卡

 

3Client端命令:iperf –B 192.168.100.110 -c 192.168.100.121 -t 60 -l 8192-i 10

影响因素:见下表

表1 TCP测试client端影响因素

序号

参数名

备注

取值范围

1

-l

数据包大小

64/128/256/512/1024/2048/4096/8192

2

-w

滑窗大小

10K/20K/40K

网络通道的容量capacity = bandwidth x round-trip time

理论TCP窗口的大小就是网络通道的容量

 

当滑窗大小分别为10K,20K,40K,数据包大小变化时,测试结果如下:

表2 滑窗大小10K-测试结果

序号

数据包大小(字节)

滑窗大小

速率

1

64

10K

193Mbit/sec

2

128

10K

362Mbit/sec

3

256

10K

651Mbit/sec

4

512

10K

1.07Gbit/sec

5

1024

10K

1.64Gbit/sec

6

2048

10K

2.17Gbit/sec

7

4096

10K

2.62Gbit/sec

8

8192

10K

3.07Gbit/sec

 

表3 滑窗大小20K-测试结果

序号

数据包大小(字节)

滑窗大小

速率

1

64

20K

198Mbit/sec

2

128

20K

383Mbit/sec

3

256

20K

720Mbit/sec

4

512

20K

1.3Gbit/sec

5

1024

20K

2.13Gbit/sec

6

2048

20K

3.2Gbit/sec

7

4096

20K

4.24Gbit/sec

8

8192

20K

5.14Gbit/sec

 

表4 滑窗大小40K-测试结果

序号

数据包大小(字节)

滑窗大小

速率

1

64

40K

202Mbit/sec

2

128

40K

395Mbit/sec

3

256

40K

763Mbit/sec

4

512

40K

1.43Gbit/sec

5

1024

40K

2.54Gbit/sec

6

2048

40K

4.16Gbit/sec

7

4096

40K

6.19Gbit/sec

8

8192

40K

8.04Gbit/sec

 

当数据包大小固定为64B,滑窗大小变化时,测试结果如下:

表5 数据包大小64B不同滑窗大小测试结果

序号

数据包大小(字节)

滑窗大小

速率

1

64

10K

190Mbit/sec

2

64

20K

199Mbit/sec

3

64

50K

202Mbit/sec

4

64

100K

202Mbit/sec

5

64

200K

202Mbit/sec

6

64

400K

202Mbit/sec

7

64

理论上限

202Mbit/sec

 

当数据包大小固定为4K,滑窗大小变化时,测试结果如下:

表6 数据包大小4KB不同滑窗大小测试结果

序号

数据包大小(字节)

滑窗大小

速率

1

4096

10K

2.56Gbit/sec

2

4096

20K

4.21Gbit/sec

3

4096

50K

6.81Gbit/sec

4

4096

100K

8.42Gbit/sec

5

4096

200K

8.92Gbit/sec

6

4096

400K

8.91Gbit/sec

7

4096

理论上限

9.4Gbit/sec

 

从以上测试结果可以看出,使用TCP进行数据包传输过程中,滑窗大小和数据包大小对网络带宽有明显影响,呈正相关趋势。64字节小包情况下速率仅为线速的2%。4K字节大包在滑窗大小不受限的情况下基本达到线速。

5.2、UDP测试

1)测试方法:从MAC1向MAC2连续发送UDP数据包,每次持续时间20秒,使用iperf记录网络吞吐量。

 

2Server端命令:iperf –s –B 192.168.100.121

影响因素:无,绑定MAC2网卡

 

3Client端命令:iperf –B 192.168.100.110 -c 192.168.100.121 -t 20 -l 8192-i 10 -u

影响因素:见下表

表7 UDP测试client端影响因素

序号

参数名

备注

取值范围

1

-l

数据包大小

64/128/256/512/1024/2048/4096/8192

2

-b

带宽大小

100M/200M/500M/1G/2G/10G/0

0表明无上限

 

在不丢包的前提下,当带宽大小分别为100M,200M,500M,1G,2G,10G,0时,不同数据包大小下的实际带宽如下,带宽单位为bit/sec。

表8 不同带宽下变长UDP数据包速率情况

包长\带宽

100M

200M

500M

1G

2G

10G

0

64Byte

66.5M

65.9M

65.1M

65.8M

66.6M

64.5M

81.7M

128Byte

100M

130M

134M

132M

133M

133M

164M

256 Byte

-

200M

263M

261M

265M

262M

323M

512 Byte

-

-

500M

529M

525M

521M

655M

1024 Byte

-

-

-

1G

1.02G

1.01G

1.28G

2048 Byte

-

-

-

-

1.98G

2.01G

2.5G

4096 Byte

-

-

-

-

2G

3.88G

4.82G

8192 Byte

-

-

-

-

-

7.01G

8.66G

65507 Byte

-

-

-

-

-

10G

10G

 

从上面测试结果中可以看出,使用UDP协议进行数据传输时,在不丢包的前提下,发送不同大小的数据包不一定能达到设定的带宽,实际带宽与数据包大小以及预设带宽限定正相关。在带宽无上限的条件下,64字节的小包带宽较低,仅达到网卡线速的0.8%。随着数据包大小增加,超过8K字节的大包能接近并达到网卡线速。


二、FSDK性能测试

1、硬件环境

a)      处理器,Intel Xeno E5 -2660 V3处理器(2.60GHz)x2

b)      内存,128G(32GX4)

c)      主板,S7070A2NR-B,PCIe_4x16(CPU0),PCIe_2x16(CPU1)

d)      网卡,Intel 82599 10Gb网卡x2

e)      交换机,盛科(最大支持100G)

2、软件环境

操作系统,Cent0S 6.6

内核版本,2.6.32-504.el6.x86_64

3、测试环境

Intel82599网卡TCP/IP与FSDK对比测试_第2张图片

图1 FSDK性能测试环境

考虑到目前仅有四个光模块,两块网卡通过交换机相连,数据包从一块网卡的MAC1发送到另一块网卡的一个MAC2。

4、测试工具

Fsdk提供的测试工具集,包含收发包测试程序

5、测试结果

1)测试方法:从MAC1向MAC2通过FSDK工具集发包程序连续发送数据包,发包速率为网卡线速10Gbit/s,每次发送1000000包,使用FSDK工具集收包程序记录网络吞吐量。

 

2)发送端命令:fsxmit –i eth0 –l 64 –R –n 1000000 (–slen:60–elen:16000)

影响因素:发包长度-l(60-16000)

 

3Client端命令:fstest –reth5

 

数据包大小变化时,测试结果如下:

表1 测试结果

序号

数据包大小(字节)

Pps(packet/sen)

Bps(bit/sec)

1

64

9.6M

6.6G

2

128

7.8M

9.3G

3

256

4.26M

9.3G

4

512

2.22M

9.3G

5

1024

1.13M

9.3G

6

2048

826K

9.3G

7

4096

410K

9.3G

8

8192

200K

9.3G

10

16-16000变长

2.1M

9.314G

 

从以上测试结果可以看出,在数据包大小超过128字节后,FSDK性能稳定在9.3Gbit/sec,接近网卡线速。64字节小包情况下速率稍差,为线速的66%。在数据包变长情况下FSDK也能够基本达到线速。


你可能感兴趣的:(Felven在职场)