为什么 buffer 越大传输效率越低
2024-05-27 14:47 阅读(305)

先看 从边际效益递减看 buffer 中挤占带宽 中的两个模型:

其中,E 为效益,编号 1,2 区分两个模型,公式中均以 y 表示,x 表示一条流的有效带宽,a 为瓶颈链路总带宽,b 为 buffer 已填充大小,c 为单向传播时延。


首先,固定 a 和 c,控制 b,动图如下:

在这里插入图片描述

一目了然:


buffer 填充越大,E1 和 E2 最大值绝对值均单调减小,取最大值时的 x 单调减小。

简单解释一下,E 的绝对值减小意味着效益度量值减小,即低效的意思,而最大值时的 x 减小意味着收益(注意和效益的区别)在减小。


结论是,buffer 越大,能效越低,收益越低。


现在固定 a,b,控制 c:

在这里插入图片描述

一目了然:


c 越大,E1,E2 取得最大值时的 x 单调递增;

c 越大,E1 最大值单调递增,E2 最大值单调递减。

简单解释一下,c 越大,rtt 越大,管道长短视为固有属性,E1 最大值同步增加意味着 c 越大,挤占 buffer 的收益带来的总效能越大,这件事值得做,反之,c 越小,小 rtt 链路挤占 buffer 就是相对出大力而不讨好了。


对 E2 而言,c 越大,E2 最大值反而越小,意味着越长的链路挤占 buffer 的收益越被淹没,属于出大力亦不讨好。


但无论 E1 还是 E2,c 越大,取得最大值时的 x 都单调递增,意味着如果链路过长,有 buffer 就去挤占吧。


综上:


buffer 越大,能效越低,收益越低;

链路越长,挤占 buffer 收益明显,但总效益被淹没;

链路越短,挤占 buffer 越困难;

如果 buffer 已部署,不要谦让。

看看,是不是所有 reno,cubic,vegas,bbr 的配置部署建议都在里面了。但总的结论还不是这,总的结论是,不要寄希望于增加 buffer 以提高传输效率,buffer 越大越低效,违反直觉了吧,这就对了。特别针对数据中心,小 rtt 短肥管道,看上面的动图,孰轻孰重。

返回顶部