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的步骤。
参考:
- www.vultr.com/docs/how-to…
- teddysun.com/489.html