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。这是指设备正在发送数据的速率,通常也称为传输速率或数据传输速率。此速率可能因网络环境、信号强度和其他因素而变化;
相关推荐
字节逆旅21 小时前
ubuntu应用深度守护
ubuntu
西岸行者7 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
欧云服务器7 天前
怎么让脚本命令可以同时在centos、debian、ubuntu执行?
ubuntu·centos·debian
智渊AI7 天前
Ubuntu 20.04/22.04 下通过 NVM 安装 Node.js 22(LTS 稳定版)
ubuntu·node.js·vim
悠哉悠哉愿意7 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码7 天前
嵌入式学习路线
学习
毛小茛7 天前
计算机系统概论——校验码
学习
babe小鑫7 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms7 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下7 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs