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 | 指定数据包大小。
|
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