
雪重
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
跨境网络、高丢包高延迟环境。