网络性能/带宽测试过程

羌俊恩 社区创始人
运维领域优质创作者
博客专家认证
2025-04-11 17:26:26

一、前言

这里需借助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:标准偏差。越大说明相应节点越不稳定。

...全文
59 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

129,248

社区成员

发帖
与我相关
我的任务
社区描述
欢迎各位小伙伴积极活跃投稿,将日常IT打怪中遇到的问题,优秀解决方案,或自己的博客认为比较经典的文章分享到这里,共同营造一个悦享的问题库,Review及减少重复造车轮的无限循环,此致敬礼
devops经验分享开源 技术论坛(原bbs) 北京·西城区
社区管理员
  • 羌俊恩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

本社区:旨在推进运维云化知识库建设,为更多运维提供参考及经验交流;加入社区的同学,如果运维工作中遇到问题或最后得到解决,有劳凑空发帖,分享共建FAQ社区。

得到解决方案的同学,请积极为发帖的同学点赞、评论、能力范围内打赏激励。另外本社区采用游戏修仙角色作为鼓励,对不同贡献者授予对应“勋章”。

最后祝愿社区繁荣昌盛,此致敬礼!!!

试试用AI创作助手写篇文章吧