之前海天的服务器就使用一键脚本安装了魔改的bbr,但是魔改版只是和centos6的系统,现在最起码都是centos7,甚至centos8了,所以之前的一键脚本不能使用,需要手动开启BBR了,并且市面上也没有特别好的魔改版本,有的还会降低效率,那么就安装原版的BBR就可以了。
Google BBR (Bottleneck Bandwidth and RTT) 是一种新的TCP拥塞控制算法,可以高效增加吞吐和降低网络延迟,并且Linux Kernel4.9+已经集成该算法。BBR只需要在发送端开启,网络其他节点和接收端不需要任何改变。
在centos7和centos8下手动开启原版BBR的步骤:
升级系统内核
安装 ELRepo 仓库
导入公钥:
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
针对不同系统安装最新版的ELRepo
RHEL-8 or CentOS-8
yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
RHEL-7, SL-7 or CentOS-7
yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
安装最新版kernel
yum --enablerepo=elrepo-kernel install kernel-ml -y
确认是否安装成功,输入代码 rpm -qa | grep kernel
,如果输出类似如下,包含kernel-ml-4.13.10-1.el7.elrepo.x86_64或更高版本内核,则表示安装成功。
kernel-3.10.0-693.el7.x86_64
kernel-tools-3.10.0-693.el7.x86_64
kernel-ml-4.13.10-1.el7.elrepo.x86_64
kernel-tools-libs-3.10.0-693.el7.x86_64
设置开机默认启动项
egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
查看目前启动项,一般结果类似如下:
CentOS Linux 7 Rescue f212d2d7754a4a6bb2b98950c20cc0b5 (4.13.10-1.el7.elrepo.x86_64)
CentOS Linux (4.10.0-693.el7.x86_64) 7 (Core)
CentOS Linux (5.13.10-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (0-rescue-d1f142097d497f24c021d7de9b81cab4) 7 (Core)
找到包含el7.elrepod
的那一行,从0开始往下数,比如上面的例子,是2,那么执行: grub2-set-default 2
查看内核版本
先 reboot
重启
重启后,uname -r
查看内核版本,如果输出类似 :5.13.10-1.el7.elrepo.x86_64
,则表示内核更新成功。
开启BBR
修改sysctl配置
echo 'net.core.default_qdisc=fq' | tee -a /etc/sysctl.conf
echo 'net.ipv4.tcp_congestion_control=bbr' | tee -a /etc/sysctl.conf
sysctl -p
检查是否加载BBR
lsmod | grep bbr
如果输出结果包含tcp_bbr,则表示开启成功