Linux/CentOS 7 部署开启 BBR 的方法

BBR 是 Google 开源的拥塞控制算法,目前在 Linux 4.9 以上内核已经可以使用。开启了 BBR 机器,可以明显感觉到网络吞吐量的提升和延迟的降低。

注意:很多人可能以为 BBR 是个软件,这里要解释一下,BBR 集成到了 Linux 内核中,所以你要想使用 BBR,就要把Linux的内核升级到4.9上才能开启。

部署 BBR 很简单,第一步我们首先升级系统的Linux内核到最新版,本文以 CentOS 7 举例。

首先检查一下你登陆的是不是root用户,不是也没关系,下面的命令我会加上sudo,如果你是root用户,在命令中把sudo去掉即可。

升级内核

检查当前内核版本

uname -r

你应该会得到如下结果

3.10.0-514.2.2.el7.x86_64

使用 ELRepo 进行内核升级

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

查看结果

rpm -qa | grep kernel

你应该会得到如下结果

kernel-ml-4.9.0-1.el7.elrepo.x86_64
kernel-3.10.0-514.el7.x86_64
kernel-tools-libs-3.10.0-514.2.2.el7.x86_64
kernel-tools-3.10.0-514.2.2.el7.x86_64
kernel-3.10.0-514.2.2.el7.x86_64

修改 grub2

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

你应该会得到如下结果

CentOS Linux 7 Rescue a0cbf86a6ef1416a8812657bb4f2b860 (4.9.0-1.el7.elrepo.x86_64)
CentOS Linux (4.9.0-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.2.2.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-bf94f46c6bd04792a6a42c91bae645f7) 7 (Core)

从结果可以看到内核在第二行,索引是从0开始的,所以我们应该设为1

sudo grub2-set-default `

重启系统

sudo shutdown -r now

检查内核版本

uname -r

得到如下结果就说明成功

4.9.0-1.el7.elrepo.x86_64

启用BBR
修改 sysctl 配置

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    16388  0 #输出参考(无需输入)

BBR一键更新开启脚本
如果你感觉上面的操作太麻烦,有人写出了一键更新脚本,你可以试试。
脚本支持系统:CentOS 6+,Debian 7+,Ubuntu 12+
虚拟技术:OpenVZ 以外的,比如 KVM、Xen、VMware 等

注意:使用脚本需用 root 用户,非root用户需手动添加 sudo

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

检查是否开启方法同上,注意脚本已经包含了升级内核和开启BBR的步骤。

参考:

  1. https://www.vultr.com/docs/how-to-deploy-google-bbr-on-centos-7
  2. https://teddysun.com/489.html

标签: LinuxGoogle


添加新评论