bbr 是真不行

2024-05-10 22:28
文章标签 不行 bbr

本文主要是介绍bbr 是真不行,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

bbr 作为 mimd 实例如何收敛到公平请看 瓶颈带宽的公平收敛,但这只是公平收敛,并不是 buffer 收敛。

上午跟朋友讨论了一个有趣的问题,感觉有必要揭露一下 bbr 的 buffer 不收敛。若不是有 probertt,多流共享瓶颈链路场景下,无限 buffer 会被无限占领,说实话,仅靠 probebw 状态的 drain 阶段是无法 buffer 收敛的,本质原因说过好多次,只要挤 buffer,总能挤出 bandwidth,drain 掉的仅仅是 “1/4old_maxbwminrtt - 挤出的 bw” 之外的 inflight。

都在下图(这是经典的收敛图,建议掌握):
在这里插入图片描述
话说能不能缩短 probertt 间隔,先看看 bbr 标准 怎么说:

An ProbeRTTInterval of 5 secs is short enough to allow quick convergence if traffic levels or routes change, but long enough so that interactive applications (e.g., Web, remote procedure calls, video chunks) often have natural silences or low-rate periods within the window where the flow’s rate is low enough for long enough to drain its queue in the bottleneck.

根本就没提 buffer,可能根本就没有认识到 bbr 只能靠 probertt 来收缩 buffer。那么缩短 probertt interval 呢?

标准里说了 interactive applications 的事,但大文件或持续流呢?probertt 期间,链路 queue 被 drain 掉了,可 host write buffer 却堆积了。bbr 隐约知道 probertt 状态下 drain 太狠了,严重影响端到端 p99 latency,在 bbr2/3 中将其妥协成了 50% inflight,然而这就无法保证尽力 drain 掉 queue 了。

bbr 开合跳幅度过大但却不协调,maxbw 和 minrtt 两个量正交,根本无法同时测的,它们之间 gap 越大,queue 就倾向于越大。maxbw 取 10-round filter,minrtt 则长达秒级,cwnd = 2 maxbw*minrtt 覆盖的动态范围过大,多亏了 probertt,否则绝对跑飞。

总之,bbr 是真不行,它吸引人的点在于它的高吞吐,显然这是依靠大摆王八拳获得的。bbr 有个结界,想公平收敛又 buffer 收缩,则趋向和 cubic 一致,吞吐自然也就下来了,而追求大吞吐,则必然放弃公平性和 buffer 收缩,靠猛挤就完了。

很多人发现 bbr3,bbr2 的吞吐不如 bbr1,人们升级 bbr 到 bbr3 的动机便不大了。

bbr 还是没有找对操作点,maxbw 和 minrtt 无法同时测得,那就别测了,best_E = max(bw / delay) 才是正确的操作点,它只有一个值。我们发现,当只有一条流的单流独享链路时,它等同于 bbr,无任何代价,不占任何 buffer,但多流共享链路时,best_E 的代价就是 buffer,而既然是 best_E,则 delay 倾向于更小。bbr 试图不付出任何代价收敛到 maxbw/minrtt,只能说是奢望,但在单流场景,它确实可以,因此 bbr 只是个单流算法。

姿势掌握了吗?

浙江温州皮鞋湿,下雨进水不会胖。

这篇关于bbr 是真不行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/977726

相关文章

vs调试asp.net网站能运行,换成ip后不行(404)

一、出现问题 在新电脑上安装了vs2017,然后新建一个webapi项目,运行没有什么问题,自动分配端口(http://localhost:59581/)。然后在控制面板中开启“internet信息服务功能”,新建网站发布程序,绑定端口(8033),用本机IP访问(http://192.168.15:8033/),运行后出现404。网上找了各种办法均不行。 二、试用方法 试用方法如下: 1

java遇到问题 不行就 重启项目 清理缓存 在别人电脑试试

java遇到问题 不行就 重启项目 清理缓存 在别人电脑试试 java遇到问题 不行就 重启项目 清理缓存 在别人电脑试试

编程不行?解锁求职新路径的七大策略

编程不行?解锁求职新路径的七大策略 在数字时代,编程技能似乎已成为求职市场的黄金门票。然而,对于那些编程能力有限或初学者来说,这似乎是一道难以逾越的鸿沟。但别担心,即使编程不是你的强项,你仍然可以通过其他途径找到满意的工作。本文将为你揭示七大策略,帮助你解锁求职新路径。 四个方面:发掘非编程岗位的机会 首先,我们要认识到编程并不是所有岗位的必备技能。在各行各业中,www.r7data.com

以无厚,入有间,做一件事为什么靠努力不行,不能长期维持

庖丁解牛,并不是在说人和技巧,而是在说解牛不在于刀的锋利,而是怎样才能做到让刀不产生损耗,就是熟悉牛肉纹路,按照纹路和肉骨间隙进行操刀。这就是尊重自然规律,对于人也是一样的,如果所有事情是靠努力去做,一旦没有了努力的动力,就会失败,失败也会损耗和自我否认,日积月累的损耗会将一把锋利的刀刃变的卷钝,同样的,一旦否认形成,一次次的挫败就会把自己损耗的体无完肤也变的同样卷钝。就像水流入海,从没有说过要把

hive学习2:Hive drop table卡住的问题,mysql字符集修改了latin,但是还是不行解决方案

刚开始接触hive,在删除表时卡住了,根据网上播客修改mysql字符集为latin,测试后还是不行,给下修改mysql字符串地址:修改mysql字符串地址      我这边修改后是还是无法删除,搞了大半个小时还是不行,最后,只能报着试试的心态升级mysql驱动jar试试,成功了,我之前的旧的jar版本是mysql-connector-java-5.1.6.jar 替换为mysql-con

【办公类-04-02】华为助手导出照片读取拍摄时间分类导出,视频不行)

背景需求 今天我用QQ相册导出照片,但是始终在转圈,手机上无法跳出“连结“”的提示,换了台式和笔记本都无法传输。(明明5月14日还可以导出的) 最后我只能用华为传输助手,把照片快速提取出来了。 使用原来的日期分类代码 【办公类-04】VS python手机照片视频按日期文件夹整理_视频按日期分类-CSDN博客文章浏览阅读1.7k次,点赞2次,收藏2次。【办公类-04】VS pyth

TCP BBR算法加速效果实测(比对)

作为一枚学生党,国内的云服务器价格和带宽太过昂贵,有提供学生优惠的云服务带宽也只有1M,而我想做的是在服务器上搭建一个同步云盘,当然这些都不是最重要的,最重要的是无法帮助我科学上网。 恰巧去年暑假的时候,Vultr搞活动注册了一个账号,现还有15美元,当时因为它们的网络对电信太不友好,速度慢丢包率高,用了一小段时间后就抛弃了,而后在去年年底Google 发布了TCP BBR算法,最近突然

让WSL内核使用BBR拥塞控制算法

使用git命令从Linux内核的Git仓库中获取源代码,$ git clone --depth 1  https://github.com/microsoft/WSL2-Linux-Kernel.git,找到对应的内核版本$ git log --grep="5.15.146.1-microsoft-standard-WSL2",回退到本机安装的内核版本$ git checkout <commit-

安装新版的Ubuntu WSL以使能BBR拥塞控制算法

【多次尝试成功的方案】通过> wsl - -list -online列出可以安装的版本,用命令> wsl --install -d Ubuntu-24.04 安装。 【未成功的方案】通过挂在ubuntu24.04.iso到E盘后,用命令> wsl --import Ubuntu24.04 C:\WSL\Ubuntu24.04\ E:\  --version 2安装。

如何开启BBR算法

启用BBR算法之前首先要确定系统的Linux内核版本在4.9以上。 1.查看内核版本 uname -a1 如果内核版本小于4.9则需要更新内核,4.9及以上跳过第二步 2.更新内核 此方法仅适用于Ubuntu和Debian 首先查看系统位数,执行以下命令 getconf LONG_BIT1 看是64还是32位 在Ubuntu Kernel上下载对应的内核安装包 下载4.11的内核: