网络性能测试方法

最近下载东西速度特别慢,根本没有达到网络服务提供商宣称的带宽。于是研究一下网络性能测试的方法。

性能测试指标

带宽与吞吐量 (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
2
3
4
5
# 测试上行带宽(客户端 -> 服务端,默认方向)
iperf3 -c <server_ip>

# 测试下行带宽(服务端 -> 客户端),使用 -R 参数
iperf3 -c <server_ip> -R
  • UDP 带宽测试
1
2
# 以 500Mbps 的速率发送 UDP 流,持续 30 秒
iperf3 -c <server_ip> -u -b 500M -t 30

参考链接

  1. iperf3-win-builds,by ar51an.
  2. iperf3使用方法详解,by enp4s0.