4.7.2. iperf3
iperf3 是用于执行网络吞吐量测量的工具。 它可以测试 TCP、UDP 或 SCTP 吞吐量。 要执行 iperf3 测试,用户必须建立服务器和客户端。测试完成后提供详细的测试报告。
4.7.2.1. 语法说明
Usage: iperf3 [-s|-c host] [options]
iperf3 [-h|--help] [-v|--version]
4.7.2.2. 常用参数选项介绍
-s, --server:启动iperf3服务器。-c, --client <host>:运行iperf3客户端,并连接到指定的服务器。-p, --port <端口号>:指定服务器端口。-t, --time <数字>:指定传输测试的持续时间(以秒为单位),iperf3在指定的时间内,重复的发送指定长度的数据包,(默认 10 秒)。-i, --interval <数字>: 设置每次报告之间的时间间隔,单位为秒,如果设置为非零值,就会按照此时间间隔输出测试报告,默认值为零。-f, --format <报告格式>:设置报告的格式,可选值包括Kbits、Mbits、Gbits、Tbits等。-u, --udp:使用 UDP 而不是 TCP。-w, --window <size>: 设置套接字缓冲区为指定大小,对于TCP方式,此设置为TCP窗口大小,对于UDP方式,此设置为接受UDP数据包的缓冲区大小,限制可以接受数据包的最大值。--logfile:将输出的测试结果储存至文件中-J, --json:输出JSON格式测试结果。-R, --reverse:反向测试,客户端作为接收端,服务器作为发送端。如果需要测试下载速度,则在Client侧使用-R参数即可。-h, --help:显示帮助信息。
可以执行 iperf3 -h 命令,了解更多参数选项。
4.7.2.3. 测试结果分析
客户端连接服务端成功后,会自动开始进行测试,两端都会输出相应的测试结果信息。
服务端输出结果包含:[ ID] Interval Transfer Bandwidth
各字段含义:
[ ID]:标识测试的流ID。每个测试流都被分配一个唯一的ID,用于区分不同的数据流。通过这个ID,你可以跟踪特定流的性能表现。
Interval:指示
iperf3报告的时间间隔。iperf3的-i选项设置报告间隔,而Interval字段表示每个报告的时间间隔。Transfer:传输的数据量。这是指在特定的时间间隔内通过测试流传输的数据量,以字节(KBytes,MBytes等)为单位。
Bandwidth/Bitrate:带宽,表示在特定的时间间隔内的平均传输速率。通常以Kbits/s或Mbits/s为单位,表示每秒传输的比特数。这个值用于衡量网络连接的速度和性能。
例如:
iperf3 -s -p 5002
-----------------------------------------------------------
Server listening on 5002
-----------------------------------------------------------
Accepted connection from 192.168.1.10, port 44764
[ 5] local 192.168.1.195 port 5002 connected to 192.168.1.10 port 44766
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 109 MBytes 917 Mbits/sec
[ 5] 1.00-2.00 sec 112 MBytes 942 Mbits/sec
[ 5] 2.00-3.00 sec 113 MBytes 949 Mbits/sec
客户端输出结果包含:[ ID] Interval Transfer Bitrate Retr Cwnd
各字段含义:
[ ID]:标识测试的流ID。每个测试流都被赋予一个唯一的ID,用于区分不同的数据流。
Interval:测试的时间间隔。
iperf3的-i选项设置报告间隔,Interval字段指示这些结果的时间间隔。Transfer:传输的数据量。以字节(Bytes)为单位,表示在测试期间通过网络传输的数据量。
Bitrate:比特率,表示在测试期间的平均传输速率。通常以Kbits/s或Mbits/s为单位,表示每秒传输的比特数。
Retr:重传次数。表示在传输过程中发生的数据包重传的次数。较高的重传次数可能表明网络有问题或存在拥塞。
Cwnd:拥塞窗口大小。表示TCP拥塞控制算法中的窗口大小,即在不收到确认时允许发送的数据量。这个值的变化可以反映网络拥塞的情况。
例如:
iperf3 -c 192.168.1.195 -i 1 -t 600 -p 5002
Connecting to host 192.168.1.195, port 5002
[ 5] local 192.168.1.10 port 44766 connected to 192.168.1.195 port 5002
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 113 MBytes 946 Mbits/sec 0 227 KBytes
[ 5] 1.00-2.00 sec 113 MBytes 948 Mbits/sec 0 227 KBytes
[ 5] 2.00-3.00 sec 113 MBytes 948 Mbits/sec 0 227 KBytes
4.7.2.4. 使用示例
启动iperf3服务器:
iperf3 -s
连接到iperf3服务器:
iperf3 -c <host>
iperf3 -c <host> -p 5002
指定测试时间为30秒:
iperf3 -c <host> -t 30
执行UDP模式测试,设置带宽为10Mbits/s:
iperf3 -c <host> -u -b 10M
以反向模式进行测试:
iperf3 -c <host> -R