前言: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"