BBR是Google 提出的一种新型拥塞控制算法,可以使Linux服务器显著地提高吞吐量和减少TCP连接的延迟。Google已经开源了该算法,并提交到了Linux内核,从4.9开始,Linux内核已经用上了该算法。

BBR解决了两个问题:
一,在有一定丢包率的网络链路上充分利用带宽。非常适合高延迟,高带宽的网络链路。
二,降低网络链路上的buffer占用率,从而降低延迟。非常适合慢速接入网络的用户。

BBR加速安装教程如下。

第一步,升级内核

查看当前内核版本:

uname -r

假如得到如下结果:

3.10.0-514.10.2.el7.x86_64

说明当前内核版本低于 4.10,使用 ELRepo 源更新:

sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.orgsudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpmsudo yum --enablerepo=elrepo-kernel install kernel-ml -y

安装完成后,查看已安装的内核:

rpm -qa | grep kernel

得到结果如下:

sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
sudo yum --enablerepo=elrepo-kernel install kernel-ml -y

在输出中看到 kernel-ml-4.11.0-1.el7.elrepo.x86_64 类似的内容,表示安装成功。

第二步,修改grub2引导

执行命令:

sudo egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d /'

会得到如下结果:

CentOS Linux 7 Rescue a0cbf86a6ef1416a8812657bb4f2b860 (4.11.0-1.el7.elrepo.x86_64)
CentOS Linux (4.11.0-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.16.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-123.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-2d3f9371c20d3e90a544ccc814d485e3) 7 (Core)

由于序号从0开始,设置默认启动项为1并重启系统:

sudo grub2-set-default 1
reboot

重启完成后,查看当前内核版本:

uname -r

得到如下结果则升级成功:

4.11.0-1.el7.elrepo.x86_64

第三步:开启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

完成后,执行命令:

sudo sysctl net.ipv4.tcp_available_congestion_control

输出应为 net.ipv4.tcp_available_congestion_control = bbr cubic reno
再执行命令:

sudo sysctl -n net.ipv4.tcp_congestion_control

输出应为 bbr
最后执行命令:

lsmod | grep bbr

返回值有 tcp_bbr 模块即说明bbr已启动!

作者 灰武士