文章目录
- 一、背景
- 二、操作步骤
-
- [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。这是指设备正在发送数据的速率,通常也称为传输速率或数据传输速率。此速率可能因网络环境、信号强度和其他因素而变化;