前言:iPerf 是一个网络性能测试工具。iPerf可以测试最大TCP和UDP带宽性能,具有多种参数和UDP特性,可以根据需要调整,可以报告带宽、延迟抖动和数据包丢失
一、下载安装
官网地址:https://iperf.fr/iperf-download.php#fedora
ubuntu 安装: sudo apt-get install iperf3
centos安装:yum install iperf3
二、参数说明
| 常规选项 | |
|---|---|
| 命令行选项 | 描述 |
| -p, --端口n | 服务器监听的端口和客户端连接的端口。客户端和服务器的端口应该相同。默认值为 5201。 |
| --cport n | 指定客户端端口的选项。(iPerf 3.1 中的新功能) |
| -f,--格式[公里公里] | 指定打印带宽数字的格式的字母。支持的格式包括
‘k’ = 千比特/秒 ‘K’ = 千字节/秒 'm' = 兆字节/秒 'M' = 兆字节/秒自适应格式可根据需要在千和兆之间进行选择。 |
| -i,--间隔n | 设置周期性带宽、抖动和丢失报告之间的间隔时间(以秒为单位)。如果非零,则自上次报告以来每隔 几秒就进行一次带宽报告。如果为零,则不打印任何周期性报告。默认值为零。 |
| -F,--文件名 | 客户端:从文件读取并写入网络,而不是使用随机数据; 服务器端:从网络读取并写入文件,而不是丢弃数据。 |
| -A,--亲和力n/n,mF | 如果可能,请设置 CPU 亲和性(仅限 Linux 和 FreeBSD)。在客户端和服务器上,您都可以使用此参数的 n 形式(其中 n 是 CPU 编号)设置本地亲和性。此外,在客户端,您可以使用 n,m 形式的参数覆盖仅针对该测试的服务器亲和性。请注意,使用此功能时,进程将仅绑定到单个 CPU(而不是包含可能多个 CPU 的集合)。 |
| -B,--绑定主机 | 绑定到host,即此机器的地址之一。对于客户端,这设置出站接口。对于服务器,这设置传入接口。这仅适用于具有多个网络接口的多宿主主机。 |
| -V或 --verbose | 提供更详细的输出 |
| -J, --json 复制代码 | JSON 格式输出 |
| --logfile文件 | 将输出发送到日志文件。(iPerf 3.1 中的新功能) |
| --d, --debug | 发出调试输出。主要(或许是唯一)供开发人员使用。 |
| -v或 --version | 显示版本信息并退出。 |
| -h或 --help | 显示帮助概要并退出。 |
| 服务端选项 | |
| 命令行选项 | 描述 |
| -s或 --服务器 | 在服务器模式下运行 iPerf。(这将仅允许一次连接一个 iperf) |
| -D, --daemon | 将服务器作为守护进程在后台运行。 |
| -I,--pidfile文件 | 写入包含进程 ID 的文件,在作为守护进程运行时非常有用。(iPerf 3.1 中的新功能) |
| 客户端选项 | |
| 命令行选项 | 描述 |
| -c,--客户端主机 | 以客户端模式运行 iPerf,连接到在主机上运行的 iPerf 服务器。 |
| --sctp | 使用 SCTP 而不是 TCP(Linux、FreeBSD 和 Solaris)。(iPerf 3.1 中的新功能) |
| -u, --udp | 使用 UDP 而不是 TCP。另请参阅-b选项。 |
| -b,--带宽n[公里] | 将目标带宽设置为 n 位/秒(UDP 默认为 1 Mbit/秒,TCP 则无限制)。如果有多个流(-P 标志),带宽限制将分别应用于每个流。您还可以在带宽说明符中添加“/”和数字。这称为“突发模式”。它将发送给定数量的数据包而不暂停,即使暂时超出指定的带宽限制。 |
| -t,--时间n | 传输时间(秒)。iPerf 通常通过重复发送len 个字节的数组来工作,持续时间秒。默认值为 10 秒。另请参阅-l、-k和-n选项。 |
| -n , --num n[公里] | 要传输的缓冲区数。通常,iPerf 发送 10 秒。-n 选项会覆盖此设置,并发送len 个 字节的数组num次,无论需要多长时间。另请参阅-l、-k和-t选项。 |
| -k,--块计数n[公里] | 要传输的块(数据包)的数量。(而不是 -t 或 -n)另请参阅-t、-l和-n选项。 |
| -l,--长度n[公里] | 要读取或写入的缓冲区的长度。iPerf 通过多次写入len字节数组来工作。对于 TCP,默认值为 128 KB,对于 UDP,默认值为 8 KB。另请参阅-n、-k和-t选项。 |
| -P,--并行n | 同时连接到服务器的数量。默认值为 1。 |
| -R或 --reverse | 以反向模式运行(服务器发送,客户端接收)。 |
| -w,--窗口n[KM] | 将套接字缓冲区大小设置为指定值。对于 TCP,这将设置 TCP 窗口大小。(这将发送到服务器并在该端使用) |
| -M,--设置-mss n | 尝试设置 TCP 最大段大小 (MSS)。MSS 通常是 TCP/IP 标头的 MTU - 40 字节。对于以太网,MSS 为 1460 字节(1500 字节 MTU)。 |
| -N,--无延迟 | 设置 TCP 无延迟选项,禁用 Nagle 算法。通常,这只对诸如 telnet 之类的交互式应用程序禁用。 |
| -4, --version4 | 仅使用 IPv4。 |
| -6,--version4 | 仅使用 IPv6。 |
| -S,--tos n | 传出数据包的服务类型。(许多路由器会忽略 TOS 字段。)您可以用十六进制数(前缀为“0x”)、八进制数(前缀为“0”)或十进制数指定该值。例如,十六进制数“0x10” = 八进制数“020” = 十进制数“16”。RFC 1349 中指定的 TOS 编号为:
IPTOS_LOWDELAY 最小化延迟 0x10 IPTOS_THROUGHPUT 最大化吞吐量 0x08 IPTOS_RELIABILITY 最大化可靠性 0x04 IPTOS_LOWCOST 最小化成本 0x02 |
| -L,--flowlabel n | 设置 IPv6 流标签(目前仅支持 Linux)。 |
| -Z, --zerocopy | 使用“零拷贝”方法发送数据,例如 sendfile(2),而不是通常的 write(2)。这占用更少的 CPU。 |
| -O,--省略n | 省略测试的前 n 秒,以跳过 TCP TCP 慢启动期。 |
| -T, --title字符串 | 在每个输出行前面加上此字符串作为前缀。 |
| -C,--linux-congestion算法 | 设置拥塞控制算法(iPerf 3.0仅适用于 Linux,iPerf 3.1仅适用于 Linux 和 FreeBSD)。 |
三、使用案例
#服务器端运行,如果守护进程运行 -D
iperf3 -s
#客户端运行
iperf3 -c "server ip"