Table of Contents

一. 物理机&软件:

二.网卡信息

三. 安装netperf

四. 开启多队列功能

五. 测试

5.1.性能标

5.2.netserver和netperf配置参数

5.2.netserver和netperf配置样例

六. 查看结果

七.总结

最终结果极限  万兆网卡:  网络吞吐量 大约为 9409.58 Mbit/s ≈  1176MB/s


本文章主要是为了测试万兆网卡的传输速率.

 

一. 物理机&软件:

1.两台装有万兆网卡的物理机, 中间用万兆交换机互联.

2.测试软件netperf 

 

 

二.网卡信息

Mellanox Technologies MT27710 Family [ConnectX-4 Lx]

[root@master01 ~]# ethtool enp9s0f0
Settings for enp9s0f0:
	Supported ports: [ FIBRE ]
	Supported link modes:   1000baseKX/Full
	                        10000baseKR/Full
	Supported pause frame use: Symmetric
	Supports auto-negotiation: Yes
	Supported FEC modes: None BaseR
	Advertised link modes:  1000baseKX/Full
	                        10000baseKR/Full
	Advertised pause frame use: Symmetric
	Advertised auto-negotiation: Yes
	Advertised FEC modes: None
	Speed: 10000Mb/s
	Duplex: Full
	Port: FIBRE
	PHYAD: 0
	Transceiver: internal
	Auto-negotiation: on
	Supports Wake-on: d
	Wake-on: d
	Current message level: 0x00000004 (4)
			       link
	Link detected: yes

三. 安装netperf

 

在测试机和陪练机上安装Netperf。

执行如下命令,下载Netperf。

wget -c "https://codeload.github.com/HewlettPackard/netperf/tar.gz/netperf-2.5.0" -O netperf-2.5.0.tar.gz

或者

百度网盘 链接: https://pan.baidu.com/s/1yDLYII0EmGHdl0Sx4rtPxA  密码: ttwr

 

依次执行如下命令,安装Netperf。

tar -zxvf netperf-2.5.0.tar.gz
cd netperf-netperf-2.5.0
./configure && make && make install && cd ..
执行netperf -h和netserver -h命令,确认安装成功。

 

四. 开启多队列功能

在测试机内部依次执行如下命令,开启多队列功能。

注:以开启 enp9s0f0 网卡为例。

ethtool -L enp9s0f0 combined 4
echo "ff" > /sys/class/net/enp9s0f0/queues/rx-0/rps_cpus
echo "ff" > /sys/class/net/enp9s0f0/queues/rx-1/rps_cpus
echo "ff" > /sys/class/net/enp9s0f0/queues/rx-2/rps_cpus
echo "ff" > /sys/class/net/enp9s0f0/queues/rx-3/rps_cpus

 

五. 测试

5.1.性能标

(1)bps是指比特率

bps是线路单位,表示bit(比特)/second(秒)。在计算机网络或者是网络运营商中,一般,宽带速率的单位用bps(或b/s)表示;bps表示比特每秒即表示每秒钟传输多少位信息。

(2)pps是指网络吞吐率

pps是包转发率单位,表示包/秒,交换机每秒可以转发多少百万个数据包(Mpps),即交换机能同时转发的数据包的数量。

 

5.2.netserver和netperf配置参数

Netperf安装完成后会生成2个工具:netserver和netperf。

工具名称

工具说明

主要参数

参数说明

netserver

接收端工具(server 端)

-p

端口号

netperf

发送端工具(client 端)

-H

指定 ECS 实例的 IP 地址。

-p

指定 ECS 实例的端口。

-l

指定运行时间。 单位 秒

-t

指定发包协议类型:TCP_STREAM 或 UDP_STREAM。建议使用 UDP_STREAM。

-m

指定数据包大小。


  • 测试 PPS 时,建议该值为 1。
  • 测试 BPS(bit per second)时,建议该值为 1400。

 

5.2.netserver和netperf配置样例

测试机   内启动netserver进程  [ 开放接收端口 :11256 ]  可以开启多个端口

netserver -p 11256

 

陪练机  内启动netperf进程,分别指定到测试机的不同netserver端口。

 

PPS:

netperf -H master01  -p 11256 -t UDP_STREAM -l 300 -- -m 1

 

BPS:

netperf -H master01  -p 11256 -t UDP_STREAM -l 300 -- -m 1400

 

 

六. 查看结果

 

[root@slave01]# netperf -H 192.168.xxx.xxx -p 11256 -t UDP_STREAM -l 10 -- -m 1 #PPS
MIGRATED UDP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.xxx.xxx (192.168.xxx.xxx) port 0 AF_INET

Socket  Message  Elapsed      Messages
Size    Size     Time         Okay Errors   Throughput
bytes   bytes    secs            #      #   10^6bits/sec

262144       1   10.00     6124765      0       4.90
262144           10.00     6103439              4.88


[root@slave01 ]# netperf -H 192.168.xxx.xxx -p 11256 -t UDP_STREAM -l 10 -- -m 1400 # BBS
MIGRATED UDP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.xxx.xxx (192.168.xxx.xxx) port 0 AF_INET

Socket  Message  Elapsed      Messages
Size    Size     Time         Okay Errors   Throughput
bytes   bytes    secs            #      #   10^6bits/sec

262144    1400   10.00     5800083      0    6496.03
262144           10.00     4778491           5351.86

[root@slave01 ]#
[root@slave01 ]# netperf -H 192.168.xxx.xxx -p 11256 -t UDP_STREAM -l 10
MIGRATED UDP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.xxx.xxx (192.168.xxx.xxx) port 0 AF_INET
Socket  Message  Elapsed      Messages
Size    Size     Time         Okay Errors   Throughput
bytes   bytes    secs            #      #   10^6bits/sec

262144   65507   10.00      181666      0    9520.16
262144           10.00      174660           9153.01

 

 

根据这个结果进行解释Socket  Message  Elapsed      Messages
Size    Size     Time         Okay Errors   Throughput
bytes   bytes    secs            #      #   10^6bits/sec

262144   65507   10.00      181666      0    9520.16
262144           10.00      174660           9153.01
 
• 输出结果中各字段含义解释如下表所示。
字段数据含义262144缓冲区大小65507数据包大小(Byte)10.00测试时间(s)181666数据包成功数0失败数9520.16网络吞吐量(Mbit/s)
 
 
 
• 通常我们建议在server端执行sar命令来统计实际收到的包并作为实际结果,具体命令为: sar -n DEV 1 320
[root@master01 ]# sar -n DEV 1 320
Linux 3.10.0-957.27.2.el7.x86_64 (master01) 	2020年04月22日 	_x86_64_	(12 CPU)

15时43分11秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
15时43分12秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15时43分12秒    enp7s0     78.38      0.00      5.13      0.00      0.00      0.00      0.00
15时43分12秒  enp9s0f0     85.14      6.76      5.68      1.28      0.00      0.00    158.11
15时43分12秒  enp9s0f1      0.00      0.00      0.00      0.00      0.00      0.00      0.00

平均时间:     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
平均时间:        lo      2.91      2.91      0.36      0.36      0.00      0.00      0.00
平均时间:    enp7s0    113.01      0.00      7.78      0.00      0.00      0.00      6.10
平均时间:  enp9s0f0 316102.14      4.04 459766.25      0.94      0.00      0.00    119.84
平均时间:  enp9s0f1      0.00      0.00      0.00      0.00      0.00      0.00      0.00

七.总结

最终结果极限  万兆网卡:  网络吞吐量 大约为 9409.58 Mbit/s ≈  1176MB/s

[root@slave01 ]# netperf -H 192.168.xxx.xxx -p 11256 -t UDP_STREAM -l 10
MIGRATED UDP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.xxx.xxx (192.168.x'x'x.114) port 0 AF_INET
Socket  Message  Elapsed      Messages
Size    Size     Time         Okay Errors   Throughput
bytes   bytes    secs            #      #   10^6bits/sec

262144   65507   10.00      180995      0    9485.04
262144           10.00      174511           9145.25

[root@slave01 ]# netperf -H 192.168.xxx.x'x'x -p 11256 -t TCP_STREAM -l 10
MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.xxx.xxx (192.168.xxx.xxx) port 0 AF_INET
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    10^6bits/sec

4194304  16384  16384    10.00    9409.58