交换机需要多大 buffer

有点违背直觉,但是真事儿,交换机过境的流越多,所需 buffer 越小,这是为什么?

范氏(范雅各布森,van jacobson)管道的 aimd 流建议 buffer_size 为 bdp,这很容易理解,因为 aimd 流最小 cwnd 为最大 cwnd 的 1/2,为保持管道持续满载,1/2 * cwnd 填满管道即可,即 1/2 * cwnd = bdp,因此 buffer_size = cwnd_max = 2 * bdp。

但这是单流的推导,多流共享 buffer 场景下是否适用还要继续推导。若 buffer 配置尾丢(tail drop),多流全局同步,范氏 style 推导依然适用,但若 buffer 配置为 red(random early detection) or codel,就要更复杂些,我先给出一个极端些的直感,再稍微详细分析随机异步流共享 buffer 场景。
所谓的极端即所有流 “均匀摊布” 在时间轴:
在这里插入图片描述

如上图两条流均匀摊布场景,两条流 cwnd 之和在其中一流 md 后即 t + 1 时刻获得,此时它们的 cwnd 之和为 Smin = 1 / 2w + (1 / 2 + (1 / 2) * (1 / 2))w,为保持管道满载,只需要让 Smin = bdp,而 buffer 的大小保持为 Smax - Smin 即可。

按此推广到 n 条流均匀摊布,可得:

S m i n = 1 2 w + ( 1 2 + 1 2 ⋅ 1 n ) w + ( 1 2 + 1 2 ⋅ 2 n ) w + . . . + ( 1 2 + 1 2 ⋅ n − 1 n ) w S_{min}=\dfrac{1}{2}w+(\dfrac{1}{2}+\dfrac{1}{2}\cdot\dfrac{1}{n})w+(\dfrac{1}{2}+\dfrac{1}{2}\cdot\dfrac{2}{n})w+...+(\dfrac{1}{2}+\dfrac{1}{2}\cdot\dfrac{n-1}{n})w Smin=21w+(21+21n1)w+(21+21n2)w+...+(21+21nn1)w

化简可得:

S m i n = n 2 ⋅ w = b d p , w = b d p ⋅ 2 n S_{min}= \dfrac{n}{2}\cdot w = bdp,w = bdp\cdot\dfrac{2}{n} Smin=2nw=bdpw=bdpn2

而 Smax - Smin = (1 / 2)w,故 buffer_size = bdp / n。

这意味着 n 条流均匀摊布时,只需要保持 bdp / n 大小的 buffer 就能保持管道满载。

buffer 按流数量缩小难道这不会造成丢包加剧?持这种执念的人还是将 buffer 当带宽了,这是错误的。如果 n 条流共享带宽,目标是 n 条流均分带宽,不是分享 buffer,这意味着它们 md 后 cwnd 必降到 bdp 以下,保持管道满载意思是 cwnd 总和维持在 bdp 以上,一条流 cwnd 降到 bdp 以下,总有流填充它空出的部分。

好,现在开始步入正题。

实际的统计复用场景中,每条流独立,多条流不可能均匀摊布,其 cwnd 之和属正态分布。n 条流 cwnd 之和,每条流相当于从 (1 / 2)w 到 w 抽样 cwnd,cwnd 属均匀分布,根据中心极限定理,cwnd 的和属正态分布,设 cwnd 抽样标准差 σ c w n d \sigma_{cwnd} σcwnd ,cwnd 之和标准差为 σ S \sigma_{S} σS ,则 ,则 ,则 n ⋅ σ c w n d 2 = σ S 2 n\cdot\sigma_{cwnd}^2=\sigma_{S}^2 nσcwnd2=σS2

每条流的 cwnd 值属于从 (1 / 2)w 到 w 的均匀分布,其标准差为 σ c w n d = w 2 12 \sigma_{cwnd}=\dfrac{w}{2\sqrt{12}} σcwnd=212 w,在 n 条流共存场景, w = Σ n w i n w=\dfrac{\Sigma^n w_i}{n} w=nΣnwi,因此 σ c w n d = w 2 12 = Σ n w i 2 12 n \sigma_{cwnd}=\dfrac{w}{2\sqrt{12}}=\dfrac{\Sigma^n w_i}{2\sqrt{12}n} σcwnd=212 w=212 nΣnwi,方差叠加可得:

σ S = n σ c w n d = Σ n w i 4 3 n = b d p + b u f f e r 4 3 n \sigma_S=\sqrt{n}\sigma_{cwnd}=\dfrac{\Sigma^nw_i}{4\sqrt{3}\sqrt{n}}=\dfrac{bdp+buffer}{4\sqrt{3}\sqrt{n}} σS=n σcwnd=43 n Σnwi=43 n bdp+buffer

而我们看上述表达式意味着什么:
在这里插入图片描述

给定一个 buffer,n 越大,覆盖 99% 可能性的有用 buffer 越少,buffer 随着 sqrt{n} 缩小, 整体上 buffer 被 n 往左边向 bdp 收缩。n 增大, σ \sigma σ 减小,要让 σ \sigma σ 减小,buffer 减小。

中心极限定理说的就是抽样越多钟形越高越细,抽样越多的意思就是 n 越大,随着 n 的增加,Σw 倾向于收敛到非常细高的区域,极端情况,n 无穷大,σS = 0,buffer 则不再需要,无穷条流的锯齿被平滑到 bdp 边缘,刚刚恰好填满 bdp。

依本文论点,aimd 锯齿仅在端可观测到,在交换机 buffer 的统计复用环境,多流行为效果恰就是中心极限定理 cwnd 采样求和的体现,依据的是另一种动力学。bbr 等 cc 分析应依据这种统计动力学而不是端侧的 aimd 动力学。

是故,足够大的 buffer 给了共存流量足够的腾挪折腾空间,其 buffer 挤占动力学有利于公平收敛,但也不绝对。buffer 过大,真带不来收益,带来时延而已,若不必吸收统计波动,仅固定数目 aimd 流共存,如上分析,实在无需大 buffer,流越多,buffer 用量越少即可保持管道满载。但现网部署的交换机配置稍微大的 buffer 实属吸收统计波动,比如 incast 或特殊事件(比如直播在特定时间开始后的短突发),但即便是研发经理,恐怕也还是觉得任何场景下 buffer 越大越好吧。

约 12 年前,我说过一句话,“经理能扣篮,但不经常,也不绝对”,这实在就是量子力学的哥本哈根解释的解释,说经理不能扣篮是不准确的,因为经理扣篮的概率虽小,但不为 0。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/770868.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV库Windows端编译方法

编译前提 (1)下载好所需版本的OpenCV源码,点击进入下载地址,此处以OpenCV-2.4.13.6为例,下载页面截图如下图所示: 解压后如下图所示: (2)安装好CMake软件,点…

规则·理解·成长:与自闭症儿童共绘记忆蓝图

在星贝育园,作为专注于自闭症儿童康复的专业教育者,我们常常遇到家长的疑惑:“为什么我的孩子总是记不清楚规则?”这个问题触及了自闭症谱系障碍(ASD)儿童在理解与遵守规则方面面临的独特挑战。下面&#x…

软考中级系统集成项目管理工程师备考笔记

目录 一,通用内容 (一)信息与信息化 1.1,信息 信息基本概念 信息的传输模型 信息的质量属性 1.2,信息系统 信息系统的基本概念 信息系统定义 信息系统集成 1.3,信息化 信息化层次 信息化的核心…

【Redis】SpringBoot连接Redis

1. 创建项目并配置文件 勾选NoSQL中的 Spring Data Redis。当然,把 Web 中的 SpringWeb 也勾选一下.方便写接口进行后续测试。 在 application.yml 中配置 2. 不同数据类型使用Demo 在SpringBoot中,为我们提供了StringRedisTemplate类,供我们处理一些文…

MYSQL8.0环境部署

创建用户 groupadd mysql useradd -g mysql mysql 删除原来的包 # rpm -qa|grep mysql # rpm -qa|grep mari mariadb-libs-5.5.68-1.el7.x86_64 # rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 解压 cd /usr/local & mkdir mysql cd mysql # cp mysql-8…

tauri使用github action实现跨平台编译并解决编译错误,mac已损坏,无法打开,你应该将它移到废纸篓解决办法

正常编译为跨平台结果就像上面的,有mac/windows/linux的安装程序,直接下载就可以安装使用,我的这个livebox桌面端仓库地址:GitHub - Sjj1024/LiveBox: livebox,里面有编译文件可以参考。今天主要讲一下遇到的问题。 官…

视频文字提取在线怎么做?5个高效提取字幕的实用方法

无论是社交媒体上的短视频,还是在线教育的课程视频,字幕都成为了不可或缺的一部分。它们不仅帮助听力障碍人士更好地理解内容,还能让非母语观众更容易跟上节奏。 一提到字幕,我们可能会想到用它来做笔记,但要从视频中…

UVa1321/LA2925 Dice contest

UVa1321/LA2925 Dice contest 题目链接题意分析测试数据AC 代码 题目链接 本题是2003年icpc欧洲区域赛中欧赛区的D题 题意 骰子的六面展开图如下,现在把骰子的六个面赋予一套权重 w i ( 1 ≤ w i ≤ 50 , 1 ≤ i ≤ 6 ) w_i(1\le w_i \le 50,1\le i\le 6) wi​(1≤…

米国政府呼吁抛弃 C 和 C++

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「C的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! 很多观点认为C 或 C永远不可被…

同步互斥与通信

目录 一、同步与互斥的概念 二、同步与互斥并不简单 三、各类方法的对比 一、同步与互斥的概念 一句话理解同步与互斥:我等你用完厕所,我再用厕所。 什么叫同步?就是:哎哎哎,我正在用厕所,你等会。 什…

nginx.conf配置参数解析

nginx配置文件解析 /usr/local/nginx/conf vim /etc/security/limits.conf #配置生效只能重新启动* soft nproc 65535 #能打开的进程最大数是软限制655335,65535是最大值 * hard nproc 65535 * soft nofile 65535 # 进程打开文件数的最大值65535 * hard nof…

最新美联储会议纪要:通胀降温,但不急于降息!

KlipC报道:当地时间周三,美联储公布了6月货币政策会议纪要。纪要显示,数据表明有通胀放缓的迹象,但如果降息需要更多的证据。此外,多位与会者表示,货币政策应随时准备应对意外的经济疲软。 会议纪要显示&a…

python-字典

为什么需要字典 字典的定义 字典数据的获取 字典的嵌套 嵌套字典的内容获取 字典的注意事项: 字典的常用操作 新增元素 更新元素 删除元素 清空字典 汇总 字典的特点

收银系统源码-收银台营销功能-定时折扣

1. 功能描述 定时折扣:在特定的时间段,将商品以打折的方式在收银台售卖,例如生鲜行业,由于生鲜是易耗品,很多门店晚上都会通过打折的方式进行促销; 2.适用场景 新门店开业、门店周年庆、节假日等特定时间…

深度分析和对比本地大语言模型Ollama和LocalAI

前言 在充满活力的人工智能(AI)世界中,开源工具已成为开发人员和组织利用LLM(大型语言模型)力量的重要资源。这些工具通过提供对高级LLM模型的访问权限,使各种用户能够构建创新和前沿的解决方案。在众多可…

springboot @configuration注解的配置, @bean注解方法a, 在@bean注解 getb(){}需要注入a

深度解析Configuration注解 /*** General purpose AOP callback. Used when the target is dynamic or when the* proxy is not frozen.*/private static class DynamicAdvisedInterceptor implements MethodInterceptor, Serializable {private final AdvisedSupport advised;…

实验九 存储过程和触发器

题目 创建并执行一个无参数的存储过程proc_product1,通过该存储过程可以查询商品类别名称为“笔记本电脑”的商品的详细信息:包括商品编号、商品名称、品牌、库存量、单价和上架时间信息 2、创建并执行一个带输入参数的存储过程proc_product2&#xff…

Rethinking Federated Learning with Domain Shift: A Prototype View

CVPR2023,针对分布式数据来自不同的域时,私有模型在其他域上表现出退化性能(具有域转移)的问题。提出用于域转移下联邦学习的联邦原型学习(FPL)。核心思想是构建集群原型和无偏原型,提供富有成效的领域知识和公平的收敛目标。将样本嵌入拉近到属于相同语义的集群原型,而…

【前端】IntersectionObserver 实现图片懒加载和无限滚动

【前端】IntersectionObserver 实现图片懒加载和无限滚动 在前端开发中,性能优化是一个重要的考量因素。随着现代网页和应用的复杂性增加,确保页面快速加载和流畅运行变得越来越重要。本文将介绍一种强大的工具——IntersectionObserver API&#xff0c…

智胜未来:AI如何重塑SaaS用户增长战略

在当今这个数字化时代,SaaS(软件即服务)已成为企业运营的重要支柱,而人工智能(AI)技术的迅猛发展,正以前所未有的方式重塑着SaaS行业的面貌,特别是对其用户增长战略产生了深远影响。…