一、常见参数
下载地址:https://iperf.fr/iperf-download.php
其中tcp一般用于测试网速/吞吐量,udp一般用于测试链路质量(丢包率、抖动等)
双向测试要打开2个窗口
TCP窗口大小:带宽时延积(BDP)计算值×2
wrk线程数:建议不超过CPU逻辑核数的1.5倍
UDP测试包大小:通常设为路径MTU-28字节(IP+UDP头)
1) -c, --client <server_hostname>:指定客户端模式,连接到指定的服务器。
2) -s, --server:指定服务器模式,启动 iPerf3 服务器。
3) -p, --port <port>:指定服务器监听的端口号,默认为 5201。
4) -t, --time <time>:指定测试持续时间,单位为秒,默认为 10 秒。
5) -i, --interval <interval>:设置报告输出的间隔时间,单位为秒,默认为 1 秒。
6) -w, --window <window_size>:设置 TCP 窗口大小,单位为字节,默认为 128KB。
7) -b, --bandwidth <bandwidth>:限制带宽,单位为比特每秒(bps)。
其中k表示Kbits、m表示Mbits、g表示Gbits、K表示KBytes、M表示MBytes、G表示GByte
(0表示无限)(UDP默认1Mbit/sec,TCP不受限制)
8) -u, --udp:使用 UDP 协议进行测试,默认TCP协议。
9) -l, --len <length>:设置 UDP 数据包的长度,单位为字节,默认为 1460 字节。
10) -n, --bytes <number>:设置要发送的字节数,可以与 -t 参数一起使用。
11) -P, --parallel <number>:指定并发连接数,可以同时进行多个连接。
12) -R, --reverse:反向测试,客户端变为服务器,服务器变为客户端。
13) -V, --IPv6:使用 IPv6 地址。
14) -h, --help:显示帮助信息
二、打流测试
#默认测速,默认10s,默认不限制带宽
# 1)测试上行
iperf3 -c <服务器IP>
# 2)测试下行
iperf3 -c <服务器IP> -R
# 3)测试链路带宽-上行
iperf3 -c <服务器IP> -u -b0 -l 1400
# 4)测试链路带宽-下行
iperf3 -c <服务器IP> -u -l 1400 -R
2.1 启动服务端
iperf3 -s
或
iperf3 -s -p <指定端口可选>
2.2 指定速率上行测试
iperf3 -c 192.168.1.1 -b 2500m -t 10
-c:指定服务器
-b:指定最大带宽为2500Mbps/2500Mbits
-t:测试时间


Interval:测试的时间间隔
Transfer:在测试期间传输的总数据量
Bandwidth:平均带宽
sender:发送
receiver:接收
2.3 指定速率下行测试
iperf3 -c 192.168.1.1 -b 2500m -t 10 -R
-c:指定服务器
-b:指定最大带宽为2500Mbps/2500Mbits
-t:测试时间
-R:反向测试


2.4 测试链路质量
iperf3 -c 192.168.1.1 -b 2500m -t 10 -u
iperf3 -c 192.168.1.1 -b 2500m -t 10 -u -l 1400
# -l: 单包大小1400字节(接近MTU默认值)
其中Jitter表示抖动,Lost/Total表示丢包率
-c:指定服务器
-b:指定最大带宽为2500Mbps/2500Mbits
-t:测试时间
-R:反向测试
-u:udp模式测试

Interval:测试的时间间隔,这里是0.00到10.00秒。
Transfer:在测试期间传输的总数据量,这里是1016 MBytes。
Bandwidth:平均带宽,这里是852 Mbits/sec。
Jitter:抖动值,表示数据包到达时间的不规则性,这里是0.024 ms。
Lost/Total Datagrams:丢包统计,表示在测试期间丢失的数据包数量与总数据包数量的比列,即大约0%的丢包率。
2.5 多线程测试
iperf3 -c 192.168.1.1 -b 50m -t 10 -P 3
-c:指定服务器
-b:指定单个线程最大带宽50mbps,这里3个线程总带宽应该是3*50=150mbps
-t:测试时间
-R:反向测试
-u:udp模式测试


2.6 下载测试
iperf3 -c 192.168.1.1 -b 0 -n 5G -R
-n:设定下载数据大小5G
