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。这是指设备正在发送数据的速率,通常也称为传输速率或数据传输速率。此速率可能因网络环境、信号强度和其他因素而变化;
相关推荐
dsywws1 小时前
Linux学习笔记之vim入门
linux·笔记·学习
晨曦_子画2 小时前
3种最难学习和最容易学习的 3 种编程语言
学习
城南vision2 小时前
Docker学习—Docker核心概念总结
java·学习·docker
ctrey_3 小时前
2024-11-1 学习人工智能的Day20 openCV(2)
人工智能·opencv·学习
十年之少3 小时前
由中文乱码引来的一系列学习——Qt
学习
u0101526584 小时前
STM32F103C8T6学习笔记2--LED流水灯与蜂鸣器
笔记·stm32·学习
wowocpp4 小时前
ubuntu 22.04 server 安装 anaconda3
linux·运维·ubuntu
王俊山IT5 小时前
C++学习笔记----10、模块、头文件及各种主题(二)---- 预处理指令
开发语言·c++·笔记·学习
慕卿扬5 小时前
基于python的机器学习(二)—— 使用Scikit-learn库
笔记·python·学习·机器学习·scikit-learn
WZF-Sang5 小时前
Linux—进程学习-01
linux·服务器·数据库·学习·操作系统·vim·进程