雪重 Python Developer 知识 汗水 灵感 机遇
2025年7月2日   network

开启bbr加速

在 Ubuntu 系统上开启 BBR 加速 (Bottleneck Bandwidth and Round-trip propagation time)可以显著提升网络性能。

开启bbr详细步骤:

加载 BBR 模块 (如果未启用):

sudo modprobe tcp_bbr

修改系统配置文件

echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf

应用

sudo sysctl -p

验证 BBR 是否生效

sysctl net.ipv4.tcp_congestion_control

应显示 net.ipv4.tcp_congestion_control = bbr

lsmod | grep bbr

输出包含 tcp_bbr

开启bbr的好&坏

好处

提升网络吞吐量

  • 动态测量带宽和延迟,避免传统算法过度降速问题,充分利用空闲带宽,显著提高数据传输效率(跨运营商场景下实测下载速度可提升 50%)。
  • 在高延迟、高丢包网络中(如海外服务器),性能提升更显著。

降低传输延迟

  • 通过减少数据包排队时间,有效降低网络延迟(RTT),提升实时应用流畅性(如视频会议、在线游戏)。

抗丢包能力强

  • 不依赖丢包作为拥塞信号,在高丢包率环境下仍保持稳定传输(4G/移动网络场景优势明显)。

网络适应性优

  • 实时响应带宽波动和延迟变化,快速适应网络条件波动(如高峰时段拥塞)。

️ ‌坏处

公平性问题

  • 与传统算法(如 Cubic)共存时,BBR 可能抢占过多带宽(浅缓冲区场景下可占 90% 带宽),导致其他连接性能下降。

CPU 开销增加

  • 启用 BBR 需配合 fq 队列调度器,否则内核高精度计时器(hrtimer)会显著增加 CPU 负载。

收敛速度较慢

  • 初始阶段需较长时间探测带宽和延迟,短连接场景(如 HTTP 短请求)收益有限。

特定场景性能下降

  • 在缓冲区深度大的网络中(如 10MB+),BBR 竞争不过 Cubic,吞吐量可能降低。
  • 高质量网络环境(如数据中心内部)开启 BBR 可能无提升甚至轻微降低性能。

什么场景应该开启bbr

跨境网络、高丢包高延迟环境。