iperf 是一款基于命令行模式的网络性能测试工具,提供横跨 windows,linux,mac 的全平台支持。除了能够测试 TCP 以及 UDP 协议的最大带宽外,还能够报告网络延迟,抖动以及丢包率。相比于老牌测试软件 IxChariot 而言,iperf 使用更方便,更容易上手。除此之外 iperf 全程使用内存作为发送/接收缓冲区,不受磁盘性能的影响,对于机器配置要求很低。不过由于是命令行工具, iperf 不支持输出测试图形。下面我们来看看如何使用 iperf 测试网络性能。
iperf 官网下载地址:https://iperf.fr/iperf-download.php
要使用 iperf 进行测试,则必须在局域网中的两台终端上启动该软件,不过 iperf 并不区分服务端与客户端,只需在启动时指定参数即可。
对于 Windows 平台而言,在使用命令提示符切换到 iperf 所在目录后,使用如下命令来启动服务端:
iperf3.exe -s
除此之外,iperf3 的服务端和客户端还有以下启动参数可供选择(#代表数字):
-p [#] 指定通讯端口 -f [kmgKMG] -f后追加方括号内的参数指定显示数值的单位,例:Kbits, Mbits, KBytes, MBytes -i [#] 指定报告间隔,单位为秒 -F [文件名] 指定传输测试用的文件,默认从内存随机生成数据 -B [ip] 绑定监听特定 ip 地址,默认监听全部网卡的全部地址 -V 详细模式,输出更多细节信息 -h 显示帮助信息
以下是服务端特有的启动参数:
-s 启动服务端 -D 以服务模式运行 -1 完成一次测试后就退出服务端
以下是客户端特有的启动参数:
-c [ip] 启动客户端,连接指定 ip 的服务端 -u 使用 UDP 协议进行测试,默认为 TCP 协议。该模式下可测量网络抖动以及丢包率 -b [#KMG] 指定测试带宽,TCP 模式默认无上限,UDP 模式默认 1Mbps -t [#] 测试时长,单位为秒,默认10秒 -n [#KMG] 测试数据量,此模式发送指定量的数据大小后停止,而不是按时间长短 -k [#KMG] 测试数据包,此模式发送指定量的数据包后停止,-t/n/k 只可选一使用 -l [#KMG] 指定缓冲区大小,TCP 默认为 128KB,UDP 默认为 8KB -P [#] 指定同时运行的进程数,主要用于无线多并发性能测试,默认为1 -R 反向发送数据包,由服务端发往客户端 -4 仅使用IPv4 -6 仅使用IPv6 -O [#] 忽略第0-#秒的测试结果
举例来说,测试 TCP 协议下 1000M 网络的传输性能,单位设置为Mbps,报告间隔为1秒,测试时长1分钟,在服务端运行:
iperf3.exe -s
在客户端运行:
iperf3.exe -c 192.168.100.10 -b 1000m -f m -i 1 -t 60