主 题:实测 BBRv3:吞吐跟 v1 差不多,重传少了一大截
发 布 者:AgentNull
标签分类: 日常
时 间:2026-09-28 20:22:31
内容预览:Ubuntu 26.04 的 7.0 内核自带的 bbr 还是 v1。手上正好有一个打了 Google BBRv3 补丁的 7.0 内核,就把 CUBIC、BBRv1、BBRv3 放在一样的条件下跑了一遍,主要想看看丢包和缓冲小的时候差多少。结论先放前面,v3 的吞吐跟 v1 差不多,有一组低了 8% 左右,但重传少了很多。CUBIC 在有随机丢包的线路上基本跑不动。怎么测的在一台 KVM 虚拟机里,用网络命名空间搭了发送端、路由器、接收端三段,瓶颈放在中间的路由器上。数据方向用 netem 限速,需要丢包就再加上随机丢包,回程的 ACK 加上往返延迟。缓冲大小按带宽乘往返延迟来算,1 BDP 就是刚好能装下一个往返的数据量,0.2 BDP 只有它的五分之一,算是缓冲很小的线路。每次只跑一条连接,一组 20 秒,最后一组跑了 60 秒。吞吐按实际送达的数据算,后半段吞吐是去掉刚开始加速那段之后的速度,重传率是重发的数据占总发送量的比例。路由器上的设置大概是这样,这是 100M、往返 40ms、缓冲正常的那组: 发往接收端的方向:限速 100M,缓冲 331 个包(这组没加丢包)tc qdisc replace dev r-rcv root netem rate 100mbit limit 331 回程方向:加上 40ms 往返延迟tc qdisc replace dev r-snd root netem delay 40ms limit 100000CUBIC 在两个内核上都跑了,结果几乎一样,下面只放自带内核那组。100M,往返 40ms,不丢包,缓冲正常算法吞吐 (Mbps)后半段吞吐 (Mbps)重传率平均 RTT (ms)CUBIC94.795.60.02%73.0BBRv193.493.40.45%41.3BBRv392.192.60.02%40.6三个都能跑
直达链接: https://www.nodeseek.com/post-953728-1
发 布 者:AgentNull
标签分类: 日常
时 间:2026-09-28 20:22:31
内容预览:Ubuntu 26.04 的 7.0 内核自带的 bbr 还是 v1。手上正好有一个打了 Google BBRv3 补丁的 7.0 内核,就把 CUBIC、BBRv1、BBRv3 放在一样的条件下跑了一遍,主要想看看丢包和缓冲小的时候差多少。结论先放前面,v3 的吞吐跟 v1 差不多,有一组低了 8% 左右,但重传少了很多。CUBIC 在有随机丢包的线路上基本跑不动。怎么测的在一台 KVM 虚拟机里,用网络命名空间搭了发送端、路由器、接收端三段,瓶颈放在中间的路由器上。数据方向用 netem 限速,需要丢包就再加上随机丢包,回程的 ACK 加上往返延迟。缓冲大小按带宽乘往返延迟来算,1 BDP 就是刚好能装下一个往返的数据量,0.2 BDP 只有它的五分之一,算是缓冲很小的线路。每次只跑一条连接,一组 20 秒,最后一组跑了 60 秒。吞吐按实际送达的数据算,后半段吞吐是去掉刚开始加速那段之后的速度,重传率是重发的数据占总发送量的比例。路由器上的设置大概是这样,这是 100M、往返 40ms、缓冲正常的那组: 发往接收端的方向:限速 100M,缓冲 331 个包(这组没加丢包)tc qdisc replace dev r-rcv root netem rate 100mbit limit 331 回程方向:加上 40ms 往返延迟tc qdisc replace dev r-snd root netem delay 40ms limit 100000CUBIC 在两个内核上都跑了,结果几乎一样,下面只放自带内核那组。100M,往返 40ms,不丢包,缓冲正常算法吞吐 (Mbps)后半段吞吐 (Mbps)重传率平均 RTT (ms)CUBIC94.795.60.02%73.0BBRv193.493.40.45%41.3BBRv392.192.60.02%40.6三个都能跑
直达链接: https://www.nodeseek.com/post-953728-1