Linux服务器的速度不如意?试试开启BBR!

BBR是什么

BBR (Bottleneck Bandwidth and Round-trip propagation time) 是由 Google 设计,并于2016年发布的拥塞控制算法,它可以优化数据包的处理方式,显著提升网络传输效率和稳定性。


BBR的作用

速度提升、延迟降低、实施简便、稳定性增强、广泛适用。
BBR 能够显著提高网络吞吐量,有效减少了数据传输的延迟,即使在网络波动的情况下,BBR 也有助于维持连接稳定(懂得都懂


BBR如何开启

注意:自带的内核版本是Linux 4.9及以上的系统已经内置BBR,但默认为关闭状态。
Ubuntu 19.04等已经默认开启BBR,不再需要手动开启。

如果没有开启BBR,请使用下面代码进行开启:

echo net.core.default_qdisc=fq >> /etc/sysctl.conf
echo net.ipv4.tcp_congestion_control=bbr >> /etc/sysctl.conf
sysctl -p

执行完成后使用 reboot 进行重启系统。


检测BBR是否开启

方法一:

sysctl net.ipv4.tcp_available_congestion_control

如果显示以下内容则代表已开启BBR:(bbr cubic reno 可以不按顺序排列)

net.ipv4.tcp_available_congestion_control = bbr cubic reno

方法二:

lsmod | grep bbr

若类似下图所示,即成功开启:


知识库

  1. 所有环境下都推荐开启BBR吗?
    不是,请根据网络环境进行测试。Cubic和BBR在不同网络环境下都不一样。
    根据相关资料,腾讯云轻量服务器5M开启BBR后通过Https下载文件最高速度无法达到带宽的最大值(即512kb/s),关闭后则可以达到。
     
  2. BBR对UDP协议是否有用?
    不会,BBR只针对TCP进行加速,对UDP不奏效。
     
  3. BBR是否会多消耗服务器流量?
    会,说小也不小,说大也不大,大约占到正常流量的5%左右。
     
  4. IPv6怎么开启BBR?
    与IPv4同步开启,无需另外开启IPv6。
     
  5. 如何关闭BBR?
    删除 /etc/sysctl.conf 上面之前添加的 net.core.default_qdisc=fq 和 net.ipv4.tcp_congestion_control=bbr,然后 执行 sysctl -p 并重启。

欢迎加入我的交流群一起讨论交流!

最后修改:2024 年 10 月 03 日

如果觉得我的文章对你有用,请给我发电 o((>ω< ))o