网络性能测试方法
最近下载东西速度特别慢,根本没有达到网络服务提供商宣称的带宽。于是研究一下网络性能测试的方法。
性能测试指标
带宽与吞吐量 (Bandwidth & Throughput)
这两个概念紧密相关但有所不同。带宽指网络链路的理论最大数据传输速率,可以理解为管道的“宽度”;而吞吐量是实际成功传输的数据量,受延迟、丢包等多种因素影响,通常小于或等于带宽。
时延/延迟 (Latency / Delay)
指数据包从源端传送到目的端所需的时间。更常用的一个变体是往返时间 (RTT, Round-Trip Time),即数据包一去一回的总时间。
抖动 (Jitter)
指时延的变化量,即连续数据包之间延迟的差异。它反映了网络的稳定性。
丢包率 (Packet Loss Rate)
指传输过程中丢失的数据包占总发送数据包的百分比。它直接反映了网络的可靠性。丢包会导致数据重传(增加延迟)或信息缺失(影响质量),对实时业务影响显著。
测试方法
为了测试局域网真实吞吐量、服务器间带宽或排查网络故障,使用行业标准工具 iperf3 ,排除浏览器和公网波动干扰。
基本用法(需两台设备)
- 服务端(被连接的一方)运行:iperf3 -s
- 客户端(发起测试的一方)运行:iperf3 -c <服务端IP>
常用参数:
- -s,–server:iperf服务器模式,默认启动的监听端口为5201,eg:iperf -s
- -P, –parallel: 指定多线程个数,单线程可能跑不满高速网络,eg: iperf -c 192.168.12.168 -P 4
- -R, –reverse: 反向测试,由服务端向客户端发送数据 测试下行带宽
- -c,–client host:iperf客户端模式,host是server端地址,eg:iperf -c 192.168.12.168
- -i,–interval:指定每次报告之间的时间间隔,单位为秒,eg:iperf3 -c 192.168.12.168 -i 2
- -p,–port:指定服务器端监听的端口或客户端所连接的端口,默认是5001端口。
- -u,–udp:表示采用UDP协议发送报文,不带该参数表示采用TCP协议, eg: iperf -c 192.168.12.168 -P 4 -u -b 1G(可查看丢包和抖动)
- -b,–bandwidth [K|M|G]:指定UDP模式使用的带宽,单位bits/sec,默认值是1 Mbit/sec。
- -t,–time:指定数据传输的总时间,即在指定的时间内,重复发送指定长度的数据包。默认10秒, eg: iperf -c 192.168.12.168 -P 4 -t 30。
测试用例
- TCP 带宽测试
1 | # 测试上行带宽(客户端 -> 服务端,默认方向) |
- UDP 带宽测试
1 | # 以 500Mbps 的速率发送 UDP 流,持续 30 秒 |
参考链接
- iperf3-win-builds,by ar51an.
- iperf3使用方法详解,by enp4s0.