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