Debian/Ubuntu/CentOS等Linux开启BBR加速AWS/GCP等云服务器访问

针对AWS/GCP等海外云服务器不稳定之状况,需要开启GOOGLE的BBR TCP拥塞控制协议以迅速加快互联网访问。经实际测验(2019年11月21日下午16点),AWS的Japan东京D区通过BBR加速后可以实现25KB/s的下载速度迅速提升至500KB/s

什么是BBR

BBR是GOOGLE推出的拥塞控制算法,核心大体为:遇到丢包时,不单纯考虑“丢包率”这一个变量来控制速率,这种算法目前相比于Cubix协议能更好地提升传输速率。

直接开启BBR

自带的内核版本是Linux 4.9及以上的系统已经内置BBR但默认为关闭状态。

最新版本诸如Ubuntu 19.04等已经默认开启BBR,不再需要手动开启

但是诸如 CentOS 8.0+, Debian 9.5+, Ubuntu 18.04/18.10+ 等近几年的需要通过以下命令开启:

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

重启之后:

lsmod | grep bbr

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

 

老系统开启BBR

目前 CentOS 6.0/7.0, Debian 8, Ubuntu 16.04/16.10 等再老一点的系统建议为升级至最新版,如果实在不想升级,可以升级Linux内核版本,参考秋水逸冰的脚本:

wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh

安装完成后,脚本会提示需要重启 VPS,输入 y 并回车后重启。

重启之后:

lsmod | grep bbr

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

疑问解答

1. 可以不安装BBR吗?

可以不开启,但是大多数情况下建议开启。针对国内腾讯云/阿里云等1Mbps小宽带则可以不开启。

2. 国内的服务器有必要开启BBR吗?

绝大多数情况不需要,实测腾讯云5M固定宽带开启BBR后通过HTTPS下载文件最高速度无法达到带宽的理论最大值,关闭后则可以达到理论最大值(512kb/s)。

3. BBR对UDP协议是否有用?

无用。BBR只针对TCP进行加速,对UDP不奏效。但是即将面世的基于UDP的HTTP3会采用BBR算法

4. BBR是否需要用户端的支持?

否,BBR是单边加速算法,仅在服务器端安装即可成功加速。

5. 开启了BBR还是很慢怎么办?

首先检查BBR是否开启。

若已经开启,那说明:①你的服务器带宽质量真的很差,或者②你自己的带宽质量差,或者③网络极度拥堵。建议进行控制变量法排除问题。

6. OpenVZ可以开启BBR么?

首先,类似于KVM、HyperV及VMWare的那种可以自定义内核的虚拟机才可以开启BBR,如果你的VPS是基于OpenVZ架构的,可能无法直接开启BBR,需要通过别的方法才能启动BBR;如果是基于XEN架构的VPS,请先确定是否可以自定义内核,因为有些Xen架构的VPS是不允许自定义内核的,通过这个命令可以看到内核版本:uname -r,若小于4.9,则无法开启。

7. 如何停止/关闭/暂停/卸载/删除BBR?

配置了BBR之后,如果不想要了需要卸载的话,可以删除/etc/sysctl.conf上面添加的net.core.default_qdisc=fqnet.ipv4.tcp_congestion_control=bbr,然后重启。
具体操作大体如下:
vim /etc/sysctl.conf
让光标移到对应的行,按dd(dd即为vim命令的删除整行)
再按:wq(别漏了冒号,这个是vim的保存命令)

8. BBR是否会多消耗服务器流量?

会,但是消耗的流量微乎其微,大约占到正常流量的5%左右。

9. 还有别的方法可以再加速吗?

有,还可以在开启BBR的同时启动TCP Fast Open:

echo "net.ipv4.tcp_fastopen=3" >> /etc/sysctl.conf && sysctl -p

其中参数3的含义:1 开启客户端,2 开启服务端,3 都开启。

10. IPv6怎么开启BBR?

BBR默认同时开启IPv4和IPv6的算法,无需另外开启IPv6。

参考

  1. 一文解释清楚GOOGLE BBR拥塞控制算法原理
  2. IPv6 如何开启 BBR 和 TCP Fast Open
  3. Debian 9开启Google BBR
  4. 题图创意参考自:How to Boost Linux Server Internet Speed with TCP BBR

1 条评论

Leave a Reply

*