网络性能/带宽测试过程
一、前言
这里需借助iperf3工具来完成,yum install -y iperf3。
说明:注意网络时延超过30ms时,会开始影响iperf的结果;当丢包率超过0.1%时,开始影响iperf结果。在丢包达到0.5%时,已经有很显著的影响。
时延+丢包越大,则 iperf3打流结果越差,其中时延的影响更明显。TCP引入了拥塞窗口(cwnd)的概念。其基本理念为如果出现丢包,则认为网络上存在拥塞。TCP会调小拥塞窗口,以降低发送速度。反之,如果判断没有拥塞,拥塞窗口会调大,增大发包速度。目前,多数Linux默认的拥塞控制算法为Cubic,这是一种基于丢包的拥塞控制算法。一旦检测到丢包,Cubic会减小30%的拥塞窗口,在广域网存在一定丢包的情况下,将对iperf打流速度影响较大。
BBR(Bottleneck Bandwidth and Round-trip propagation time)是一种新型的TCP 拥塞控制算法。与Cubic不同,BBR是一种基于带宽和延迟反馈的拥塞控制算法。目前已经演化到第二版,是一个典型的封闭反馈系统,发送多少报文和用多快的速度发送这些报文都是在每次反馈中不断调节。BBR算法的核心是找到最大带宽(Max BW)和最小延时(Min RTT)这两个参数,最大带宽和最小延时的乘积可以得到BDP(Bandwidth Delay Product), 而BDP就是网络链路中可以存放数据的最大容量。BDP驱动Probing State Machine(探测状态机)得到rate quantum和cwnd,分别设置到发送引擎中就可以解决发送速度和数据量的问题。BBR算法出现之后,会平稳的发送数据,不会突发流量冲击。BBR相对Cubic的优点包括抗丢包能力强、延迟低、抢占能力强和平稳发送。使用BBR,可以获得显著的网络吞吐量的提升和延迟的降低。吞吐量的改善在远距离路径上尤为明显,Iperf的打流性能通常也会看到较好的提升。 Linux Kernel从4.9版本开始支持BBR,win11 22H2内置了BBRv2 算法。
二、过程命令

2.1、测试TCP发送带宽
1)服务端启动监听:iperf3 -s -i 1 -p 1234
2)被测客户端:iperf3 -c <server_ip> -i 1 -p 1234 -t 120 -P 1
2.2、测试TCP接收带宽
1)被测服务端:iperf3 -s -i 1 -p 1234
2)客户端:iperf3 -c <server_ip> -i 1 -p 1234 -t 120 -P 1
2.3、时延测试,
1)被测端:qperf &
2)客户端:qperf 192.168.2.10 -m 64 -t 60 -vu udp_lat,结果的latency字段就是主机间时延
2.4、多并发打流
使用单连接或单线程打流容易受到地域、网络时延、TCP拥塞算法等因素的影响,打流测试结果可能无法达到订购带宽值。因此建议采用多个并发连接或多线程的方式来进行带宽打流测试;还可以采用BBR拥塞控制算法来提高吞吐。开启BBR算法方法为:
##升级Linux内核到4.9以上
echo “net.ipv4.tcp_congestion_control=bbr” >> /etc/sysctl.conf
sysctl -p
sysctl -a | grep cong
iperf3 -c 192.168.2.10 -p 5201 -i 1 -P 8 #iperf3进程是单线程的,-P参数会建立多个并发连接,但都是使用的同一个CPU
2.5、网络连通性
mtr server_ip #结果分析:默认配置下,返回结果中各数据列的说明:
Host:节点IP地址和域名。如前面所示,按n键可以切换显示。
Loss%:节点丢包率。
Snt:每秒发送数据包数。默认值是10,可以通过参数 -c 指定。
Last:最近一次的探测延迟值。
Avg、Best、Wrst:分别是探测延迟的平均值、最小值和最大值。
StDev:标准偏差。越大说明相应节点越不稳定。
相关推荐
cpp-iperf3一个TCPUDP和SCTP网络带宽测量工具
iperf是主动测量IP网络上最大可实现带宽的工具。 它支持调整与时序,协议和缓冲区相关的各种参数。 对于每个测试,它都会报告测量的吞吐量/比特率,丢失和其他参数。
网络性能测试Iperf2.05
用于测试网络性能、吞吐量、抖动、丢包,源代码 可编译,linux、window平台皆可用
iperf工具使用指南[可运行源码]
本文详细介绍了iperf工具的使用方法,包括其主要测试内容、参数说明及测试示例。iperf是一个基于Client/Server的网络性能测试工具,能够测试TCP、UDP和SCTP的带宽质量,提供吞吐量、稳定性、可靠性等关键网络性能指标。文章详细列举了公共使用、服务端和客户端的参数说明,并通过具体示例展示了如何进行吞吐量、稳定性和可靠性测试。这些测试可以帮助用户定位网络瓶颈,优化网络性能。
网络性能测试报告_模板
该文档是在实际测试过程中编写的网络性能测试报告的一个模板,提供给需要做此类性能测试的小伙伴下载,帮助提高工作效率。
Docker网络性能测试报告.pptx
Docker网络性能测试报告.pptx


