Iperf3 网卡物理传输速度测试

文章目录

  • 一、背景
  • 二、操作步骤
    • [1. 工具安装](#1. 工具安装)
      • [1.1 服务器端专用选项](#1.1 服务器端专用选项)
      • [1.2 客户端专用选项](#1.2 客户端专用选项)
    • [2. TCP 模式测试](#2. TCP 模式测试)
      • [2.1 服务器端](#2.1 服务器端)
      • [2.2 客户端](#2.2 客户端)
      • [2.3 测试结果](#2.3 测试结果)
    • [3. UDP 模式测试](#3. UDP 模式测试)
      • [3.1 服务器端](#3.1 服务器端)
      • [3.2 客户端](#3.2 客户端)
      • [3.3 测试结果](#3.3 测试结果)
  • 补充

一、背景

近期在进行主从机配置,发现从机接收主机数据无法达到指定速率,便进行网卡物理数据传送测试进而对网卡性能评估。

二、操作步骤

1. 工具安装

使用 sudo apt-get install iperf3 命令进行 iperf3 工具安装。

1.1 服务器端专用选项

bash 复制代码
-s, --server                    # Iperf服务器模式
-D (v1.2或更高版本)               # Unix平台下Iperf作为后台守护进程运行。在Win32平台下,Iperf将作为服务运行。
-R(v1.2或更高版本,仅用于Windows)  # 卸载Iperf服务(如果它在运行)。
-o(v1.2或更高版本,仅用于Windows)  # 重定向输出到指定文件
-c, --client host               # 如果Iperf运行在服务器模式,并且用-c参数指定一个主机,那么Iperf将只接受指定主机的连接。此参数不能工作于UDP模式。
-P, --parallel #                # 服务器关闭之前保持的连接数。默认是0,这意味着永远接受连接。

1.2 客户端专用选项

bash 复制代码
-b, --bandwidth #\[KM]       # UDP模式使用的带宽,单位bits/sec。此选项与-u选项相关。默认值是1 Mbit/sec。 
-c, --client host            # 运行Iperf的客户端模式,连接到指定的Iperf服务器端。 
-d, --dualtest               # 运行双测试模式。这将使服务器端反向连接到客户端,
                             # 使用-L 参数中指定的端口(或默认使用客户端连接到服务器端的端口)。
                             # 这些在操作的同时就立即完成了。如果你想要一个交互的测试,请尝试-r参数。 
-n, --num #\[KM]             # 传送的缓冲器数量。通常情况,Iperf按照10秒钟发送数据。
                             # -n参数跨越此限制,按照指定次数发送指定长度的数据,而不论该操作耗费多少时间。参考-l与-t选项。 
-r, --tradeoff               # 往复测试模式。当客户端到服务器端的测试结束时,服务器端通过-l选项指定的端口(或默认为客户端连接到服务器端的端口),
                             # 反向连接至客户端。当客户端连接终止时,反向连接随即开始。如果需要同时进行双向测试,请尝试-d参数。 
-t, --time #                 # 设置传输的总时间。Iperf在指定的时间内,重复的发送指定长度的数据包。默认是10秒钟。参考-l与-n选项。 
-L, --listenport #           # 指定服务端反向连接到客户端时使用的端口。默认使用客户端连接至服务端的端口。 
-P, --parallel #             # 线程数。指定客户端与服务端之间使用的线程数。默认是1线程。需要客户端与服务器端同时使用此参数。 
-S, --tos #                  # 出栈数据包的服务类型。许多路由器忽略TOS字段。你可以指定这个值,使用以"0x"开始的16进制数,
                             # 或以"0"开始的8进制数或10进制数。 例如,16进制'0x10' = 8进制'020' = 十进制'16'。
                             # TOS值1349就是: IPTOS\_LOWDELAY minimize delay 0x10 IPTOS\_THROUGHPUT maximize 
                             # throughput 0x08 IPTOS\_RELIABILITY maximize reliability 0x04 IPTOS\_LOWCOST minimize cost 0x02 
-T, --ttl #                  # 出栈多播数据包的TTL值。这本质上就是数据通过路由器的跳数。默认是1,链接本地。 
-F (from v1.2 or higher)     # 使用特定的数据流测量带宽,例如指定的文件。 $ iperf -c -F 
-I (from v1.2 or higher)     # 与-F一样,由标准输入输出文件输入数据。 

2. TCP 模式测试

配置两台硬件平台连接到同一网络:

  • PC_A 网段:192.168.2.102
  • PC_B 网段:192.168.2.110

2.1 服务器端

在 PC_A 终端执行

bash 复制代码
iperf3 -s -i 1

终端会出现如下打印:

bash 复制代码
iperf3 -s -i 1
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------

2.2 客户端

在 PC_B 终端执行

bash 复制代码
iperf3 -c 192.168.2.110 -i 1 -t 10 -b 25M

参数说明:

-c 192.168.2.110: 指定客户端连接到的服务器的IP地址;

-i 1: 指定报告间隔为1秒,即每秒显示一次性能报告;

-t 10: 指定测试的总时间为10秒;

-b 25M: 指定TCP带宽为25兆比特每秒(25 Mbps);

2.3 测试结果

bash 复制代码
iperf3 -c 192.168.2.110 -i 1 -t 10 -b 25M
Connecting to host 192.168.2.110, port 5201
[  5] local 192.168.2.102 port 34376 connected to 192.168.2.110 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  1.20 MBytes  10.0 Mbits/sec    0    109 KBytes       
[  5]   1.00-2.00   sec   896 KBytes  7.34 Mbits/sec    0    119 KBytes       
[  5]   2.00-3.00   sec  2.38 MBytes  19.9 Mbits/sec    0    197 KBytes       
[  5]   3.00-4.00   sec  1.38 MBytes  11.5 Mbits/sec    0    214 KBytes       
[  5]   4.00-5.00   sec  2.12 MBytes  17.8 Mbits/sec    0    235 KBytes       
[  5]   5.00-6.00   sec  2.62 MBytes  22.0 Mbits/sec    0    255 KBytes       
[  5]   6.00-7.00   sec  2.50 MBytes  21.0 Mbits/sec    0    284 KBytes       
[  5]   7.00-8.00   sec  1.62 MBytes  13.6 Mbits/sec    0    284 KBytes       
[  5]   8.00-9.00   sec  2.75 MBytes  23.1 Mbits/sec    0    354 KBytes       
[  5]   9.00-10.00  sec  2.50 MBytes  21.0 Mbits/sec    0    444 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  19.9 MBytes  16.7 Mbits/sec    0             sender
[  5]   0.00-10.13  sec  18.6 MBytes  15.4 Mbits/sec                  receiver

iperf Done.

重点关注 Bitrate 项:

  • 上传速率16.7 Mbits/sec 2 MBytes/sec
  • 下载速率15.4 Mbits/sec 2 MBytes/sec

即,此网卡满负载传输速率约 2 MBytes/sec ,达不到我们的使用需求。

3. UDP 模式测试

配置两台硬件平台连接到同一网络:

  • PC_A 网段:192.168.2.102
  • PC_B 网段:192.168.2.110

3.1 服务器端

在 PC_A 终端执行

bash 复制代码
iperf3 -s -i 1

终端会出现如下打印:

bash 复制代码
iperf3 -s -i 1
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------

3.2 客户端

在 PC_B 终端执行

bash 复制代码
iperf3 -u -c 192.168.2.110 -i 1 -t 10 -b 25M

参数说明:
-u: 表示进行UDP测试 ;

-c 192.168.2.110: 指定客户端连接到的服务器的IP地址;

-i 1: 指定报告间隔为1秒,即每秒显示一次性能报告;

-t 10: 指定测试的总时间为10秒;

-b 25M: 指定TCP带宽为25兆比特每秒(25 Mbps);

3.3 测试结果

UDP 终端打印结果与 TCP 测试类似

bash 复制代码
iperf3 -u -c 192.168.2.110 -i 1 -t 10 -b 25M
Connecting to host 192.168.2.110, port 5201
[  5] local 192.168.2.102 port 36040 connected to 192.168.2.110 port 5201
[ ID] Interval           Transfer     Bitrate         Total Datagrams
[  5]   0.00-1.00   sec  2.77 MBytes  23.2 Mbits/sec  2004  
[  5]   1.00-2.00   sec  3.09 MBytes  25.9 Mbits/sec  2237  
[  5]   2.00-3.00   sec  2.88 MBytes  24.1 Mbits/sec  2084  
[  5]   3.00-4.00   sec  3.18 MBytes  26.7 Mbits/sec  2303  
[  5]   4.00-5.00   sec  2.98 MBytes  25.1 Mbits/sec  2161  
[  5]   5.00-6.00   sec  2.84 MBytes  23.9 Mbits/sec  2059  
[  5]   6.00-7.00   sec  3.08 MBytes  25.9 Mbits/sec  2234  
[  5]   7.00-8.00   sec  2.46 MBytes  20.6 Mbits/sec  1782  
[  5]   8.00-9.00   sec  3.40 MBytes  28.5 Mbits/sec  2461  
[  5]   9.00-10.00  sec  3.11 MBytes  26.1 Mbits/sec  2255  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-10.00  sec  29.8 MBytes  25.0 Mbits/sec  0.000 ms  0/21580 (0%)  sender
[  5]   0.00-10.13  sec  29.8 MBytes  24.7 Mbits/sec  0.669 ms  2/21580 (0.0093%)  receiver

iperf Done.

补充

查看 网卡传输理论速度

bash 复制代码
sudo apt-get install iw
ifconfig
iw dev wlan0 link

终端打印内容如下:

bash 复制代码
iw dev wlan0 link
	Connected to 7f:11:51:c7:bc:3e (on wlan0)
		SSID: gene
		freq: 2412
		signal: -40 dBm
		tx bitrate: 72.2 MBit/s

各参数含义如下:

Connected to 7f:11:51:c7:bc:3e (on wlan0): 表示当前设备已连接到 MAC 地址为 7f:11:51:c7:bc:3e 的无线网络,并且连接是通过 wlan0 接口完成的。

  • SSID: 网络的标识符,表示无线网络的名称为 "gene";
  • freq: 2412: 表示连接的无线频率为 2412 MHz。在 2.4 GHz 的无线频段中,2412 MHz 对应的信道为 1;
  • signal: -40 dBm: 表示接收到的信号强度为 -40 dBm。信号强度的负值越小,表示信号越强 。通常,-40 dBm 是一个相对较高的信号强度,表示连接质量很好;判断信号强度是相对的,因为它依赖于设备和网络的特定情境。
    常见信号强度量化参考值:
    • -30 dBm 到 -50 dBm: 优秀信号强度。连接质量非常好,几乎没有丢包,适合高性能的应用和多媒体流;
    • -50 dBm 到 -60 dBm: 良好信号强度。连接质量良好,适合一般的数据传输;
    • -60 dBm 到 -70 dBm: 中等信号强度。连接质量中等,可能在一些情况下会有一些丢包,但仍然可接受;
    • -70 dBm 以下: 较差信号强度。连接可能不太稳定,丢包较多,性能下降;
  • tx bitrate: 72.2 MBit/s: 表示当前的传输速率为 72.2 Mbps。这是指设备正在发送数据的速率,通常也称为传输速率或数据传输速率。此速率可能因网络环境、信号强度和其他因素而变化;
相关推荐
南宫生1 小时前
力扣-图论-17【算法学习day.67】
java·学习·算法·leetcode·图论
sanguine__1 小时前
Web APIs学习 (操作DOM BOM)
学习
White_Mountain2 小时前
在Ubuntu中配置mysql,并允许外部访问数据库
数据库·mysql·ubuntu
数据的世界013 小时前
.NET开发人员学习书籍推荐
学习·.net
coder_pig3 小时前
📝小记:Ubuntu 部署 Jenkins 打包 Flutter APK
flutter·ubuntu·jenkins
四口鲸鱼爱吃盐3 小时前
CVPR2024 | 通过集成渐近正态分布学习实现强可迁移对抗攻击
学习
mit6.8244 小时前
Ubuntu 系统下性能剖析工具: perf
linux·运维·ubuntu
watermelonoops4 小时前
Windows安装Ubuntu,Deepin三系统启动问题(XXX has invalid signature 您需要先加载内核)
linux·运维·ubuntu·deepin
OopspoO6 小时前
qcow2镜像大小压缩
学习·性能优化
A懿轩A6 小时前
C/C++ 数据结构与算法【栈和队列】 栈+队列详细解析【日常学习,考研必备】带图+详细代码
c语言·数据结构·c++·学习·考研·算法·栈和队列