文章目录
- iperf3 命令简介
- 测试机器
- 安装流程
- 常用参数
- (1)**`-s`**: 作为服务器模式运行,此时启动监听端口默认为 `5201` ,也可使用 **`-p`** 指定监听端口
- (2)**`-c <server_ip>`**: 作为客户端模式运行,连接到指定的服务器主机名或 IP 地址,若非默认端口,则使用 **`-p`** 指定连接服务端启动的监听端口
- (3)**`-t <time>`**: 设置测试持续时间,单位为秒(默认是 10 秒)。
- (4)**`-b <bandwidth>`**: 指定目标带宽,支持 K(Kbps)、M(Mbps)、G(Gbps)等单位,默认是无限制。**`-u`** 常用于 UDP 测试。
- (5)**`-P <num>`**: 设置并行的客户端流数量,用于并行传输测试。
- (6)**`-R`**: 反向测试,服务器向客户端发送数据,主要测试限制带宽机器入方向流量是否有问题
- 其他参数支持
iperf3 命令简介
iperf3
是一个用于测量网络带宽性能的工具。它包括客户端和服务端部分,通过在两者之间传输数据来评估网络性能,以下文档在客户端机器出口带宽限速
测试机器
-
服务端:11.11.11.11
-
客户端:22.22.22.22
测试机器环境说明:
(1)服务端和客户端机器外网全互通
(2)当前客户端已经使用tc
限制外网bond0出口带宽最高为 1Mb
# 当前客户端 22.22.22.22 机器上限速规则如下,可使用下面命令查看当前bond0网卡限速情况
~# tc qdisc show dev bond0
qdisc htb 1: root refcnt 17 r2q 10 default 0x30 direct_packets_stat 7 direct_qlen 1000
安装流程
apt-get install iperf3 -yy
常用参数
(1)-s
: 作为服务器模式运行,此时启动监听端口默认为 5201
,也可使用 -p
指定监听端口
iperf3 -s
实用举例:
# 例如此处,在 11.11.11.11 上执行 iperf3 -s ,作为启动的服务端
iperf3 -s
(2)-c <server_ip>
: 作为客户端模式运行,连接到指定的服务器主机名或 IP 地址,若非默认端口,则使用 -p
指定连接服务端启动的监听端口
iperf3 -c <server_ip>
实用举例:
# 例如次此处,在 22.22.22.22 上,连接到11.11.11.11
iperf3 -c 11.11.11.11
# 客户端输出结果如下:
Connecting to host 11.11.11.11, port 5201
[ 5] local 22.22.22.22 port 44548 connected to 11.11.11.11 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 345 KBytes 2.82 Mbits/sec 0 50.9 KBytes
[ 5] 1.00-2.00 sec 147 KBytes 1.20 Mbits/sec 0 50.9 KBytes
[ 5] 2.00-3.00 sec 127 KBytes 1.04 Mbits/sec 0 50.9 KBytes
[ 5] 3.00-4.00 sec 127 KBytes 1.04 Mbits/sec 0 50.9 KBytes
[ 5] 4.00-5.00 sec 127 KBytes 1.04 Mbits/sec 0 50.9 KBytes
[ 5] 5.00-6.00 sec 127 KBytes 1.04 Mbits/sec 0 50.9 KBytes
[ 5] 6.00-7.00 sec 0.00 Bytes 0.00 bits/sec 0 50.9 KBytes
[ 5] 7.00-8.00 sec 127 KBytes 1.04 Mbits/sec 0 50.9 KBytes
[ 5] 8.00-9.00 sec 127 KBytes 1.04 Mbits/sec 0 50.9 KBytes
[ 5] 9.00-10.00 sec 0.00 Bytes 0.00 bits/sec 0 50.9 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.23 MBytes 1.03 Mbits/sec 0 sender
[ 5] 0.00-10.11 sec 1.04 MBytes 859 Kbits/sec receiver
iperf Done.
### 各参数解读
- ID: 测试流的唯一标识符。这对于多个并行流的测试非常有用,可以区分不同流的数据。
- Interval: 表示测试过程中每个报告的时间间隔。通常格式为 `start_time - end_time`,单位是秒。这个时间间隔表示当前统计数据所属的时间段。
- Transfer: 传输的数据量,通常以字节(B)、千字节(KB)、兆字节(MB)或千兆字节(GB)为单位。这个数字表示在当前时间间隔内传输的数据总量。
- Bitrate: 数据传输速率,通常以比特每秒(bps)、千比特每秒(Kbps)、兆比特每秒(Mbps)或千兆比特每秒(Gbps)为单位。这个数字表示在当前时间间隔内的平均数据传输速率。
- Retr: 重传次数。这个字段表示在当前时间间隔内,TCP 协议重传数据包的次数。重传通常是由于网络拥塞或数据包丢失引起的。
- Cwnd: 拥塞窗口大小(Congestion Window),单位为字节。这个字段表示 TCP 协议在当前时间间隔内的拥塞控制窗口大小。拥塞窗口大小是 TCP 控制流量的一种方式,用以决定在网络上能发送多少数据而不会导致拥塞。
(3)-t <time>
: 设置测试持续时间,单位为秒(默认是 10 秒)。
iperf3 -c <server_ip> -t 30
实用举例:
# 设置测试30s
iperf3 -c 11.11.11.11 -t 30
(4)-b <bandwidth>
: 指定目标带宽,支持 K(Kbps)、M(Mbps)、G(Gbps)等单位,默认是无限制。-u
常用于 UDP 测试。
iperf3 -c <server_ip> -u -b 100M ,且使用UPD协议
实用举例:
# 设置测试指定目标宽带为 100M
iperf3 -c 11.11.11.11 -u -b 100M
(5)-P <num>
: 设置并行的客户端流数量,用于并行传输测试。
iperf3 -c <server_ip> -P 4
实用举例:
# 设置 5 个并行的客户端流量数
iperf3 -c 11.11.11.11 -P 5
(6)-R
: 反向测试,服务器向客户端发送数据,主要测试限制带宽机器入方向流量是否有问题
iperf3 -c <server_ip> -R
实用举例:
# 客户端使用下面命令,默认服务端向客户端发送数据
iperf3 -c 11.11.11.11 -R
其他参数支持
(1)-J
: 打印 JSON 格式的输出结果
iperf3 -c <server_ip> -J
(2)--logfile
: 将测试结果保存到文件
iperf3 -c <server_ip> --logfile result.log