文章目录
目的
- 熟悉iperf, 以及能够对iperf 有一定的了解。
- 了解如何使用iperf测试对应网络带宽
- 了解网络测试性能指标
iperf:
Iperf是一个网络性能测试工具。可以测试TCP和UDP带宽质量,可以测量最大TCP带宽,具有多种参数和UDP特性,可以报告带宽,延迟抖动和数据包丢失。Iperf在linux和windows平台均有二进制版本供自由使用。
iPerf - The ultimate speed test tool for TCP, UDP and SCTPTest the limits of your network + Internet neutrality test
iperf3 参数文档
目前可用新版本iperf3。
iperf 版本迭代更新说明
iPerf 2.0、iPerf 3.0 和 iPerf 3.1 之间的变化
iPerf3 当前支持的 iPerf2 功能:
- TCP 和 UDP 测试
- 设置端口 (-p)
- 设置 TCP 选项:无延迟、MSS 等。
- 设置 UDP 带宽 (-b)
- 设置套接字缓冲区大小 (-w)
- 报告间隔 (-i)
- 设置 iPerf 缓冲区 (-l)
- 绑定到特定接口 (-B)
- IPv6 测试 (-6)
- 要传输的字节数 (-n)
- 测试长度 (-t)
- 并行流 (-P)
- 设置 DSCP/TOS 位向量 (-S)
- 更改数字输出格式 (-f)
iPerf3 不支持的 iPerf2 功能:
- 双向测试 (-d / -r)
- 从 stdin (-I) 传输的数据
- TTL : 生存时间,用于组播 (-T)
- 排除 C(连接) D(数据) M(组播) S(设置) V(服务器) 报告 (-x)
- 以逗号分隔值 (-y) 的形式报告
- 兼容模式允许与旧版本的 iPerf (-C) 一起使用
iPerf 3.0 的新功能:
- 动态服务器(客户端/服务器参数交换) – iPerf2 中的大多数服务器选项现在都可以由客户端动态设置
- 客户端/服务器结果交换
- iPerf3 服务器同时接受单个客户端(iPerf2 同时接受多个客户端)
- iPerf API (libiperf) – 提供一种使用、自定义和扩展 iPerf 功能的简单方法
- -R,反向测试模式 – 服务器发送,客户端接收
- -O, --omit N :省略前 n 秒(忽略 TCP 慢启动)
- -b, --bandwidth n[KM] 对于 TCP(仅 IPERF 2 的 UDP):将目标带宽设置为 n 位/秒(UDP 默认为 1 Mbit/秒,TCP 无限制)。
- -V, --verbose :比以前更详细的输出
- -J, --json :JSON 格式的输出
- -Z, --zerocopy :使用“零复制”sendfile() 方法发送数据。这使用的 CPU 要少得多。
- -T, --title str :在每个输出行前加上此字符串的前缀
- -F, --file name : xmit/recv 指定的文件
- -A, --affinity n/n,m : 设置 CPU 亲和力(内核编号从 0 - 仅限 Linux 和 FreeBSD)
- -k, --blockcount #[KMG] :要传输的块数(数据包)(而不是 -t 或 -n)
- -4, --version4 : 仅使用 IPv4
- -6, --version6 : 仅使用 IPv6
- -L, --flowlabel : 设置 IPv6 流标签(仅限 Linux)
- -C, --linux-congestion : 设置拥塞控制算法(仅限 Linux 和 FreeBSD)(iPerf2 中的 -Z)
- -d, --debug :发出调试输出。主要(也许是唯一)供开发人员使用。
- -s, --server :iPerf2 可以处理多个客户端请求。iPerf3 一次只允许一个 iperf 连接。
- 新增:磁盘读取测试(服务器:iperf3 -s / 客户端:iperf3 -c testhost -i1 -F 文件名)
- 新增:磁盘写入测试(服务器:iperf3 -s -F 文件名/客户端:iperf3 -c testhost -i1)
iPerf 3.1 的新功能:
- -I, --pidfile 文件写入一个带有进程 ID 的文件,在作为守护程序运行时最有用。
- –cport :指定客户端端口。
- –sctp 使用 SCTP 而不是 TCP(Linux、FreeBSD 和 Solaris)。
- –udp-counters-64bit :支持运行时间非常长的 UDP 测试,这可能会导致计数器溢出
- –logfile file :将输出发送到日志文件。
iperf3 用户文档
iper3 可以分作为server , Client 端, 采用C/S网络结构测试。
常规选项
命令行选项 | 描述 |
---|---|
-p, --port n | 服务器要侦听的服务器端口和客户端要连接的服务器端口 。这在客户端和服务器中应该是相同的。默认值为 5201。 |
–cport n | <