BBR 是 Google 提出的一种新型拥塞控制算法,可以使 Linux 服务器显著地提高吞吐量和减少 TCP 连接的延迟。
bbr只支持使用syctemctl命令的系统,所以centos只支持7以上版本。centos6无法使用
CentOS 8启用BBR的条件是内核版本大于4.9
uname -r 可以查看内核版本
[root@localhost ~]# uname -r
4.18.0-305.3.1.el8.x86_64
CentOS8默认版本4.18已经高于4.9了,所以只需要在sysctl.conf配置文件加入两句内容,在重新加载系统参数即可即可,命令如下:
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
这时已经启用成功。
检测是否启用成功:
sysctl -n net.ipv4.tcp_congestion_control
lsmod | grep bbr
如果输出字样包含BBR,说明启用成功了。
CentOS 7
CentOS 7默认是小于4.9版本的。
[root@localhost ~]# uname -r
3.10.0-1160.el7.x86_64
所以先升级内核
1):导入公钥ELRepo
[root@localhost ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
2):安装elrepo仓库的yum源:
[root@localhost ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-5.el7.elrepo.noarch.rpm
Retrieving http://www.elrepo.org/elrepo-release-7.0-5.el7.elrepo.noarch.rpm
Preparing... ################################# [100%]
Updating / installing...
1:elrepo-release-7.0-5.el7.elrepo ################################# [100%]
查看最新内核版本:https://elrepo.org/linux/kernel/el7/x86_64/RPMS/
3):安装最新内核版本
[root@localhost ~]# yum --enablerepo=elrepo-kernel install kernel-ml -y
4):rpm -qa | grep kernel查看内核是否安装成功
[root@localhost ~]# rpm -qa | grep kernel
kernel-3.10.0-1160.el7.x86_64
kernel-tools-3.10.0-1160.el7.x86_64
kernel-headers-3.10.0-1160.42.2.el7.x86_64
kernel-ml-5.16.11-1.el7.elrepo.x86_64
kernel-tools-libs-3.10.0-1160.el7.x86_64
如上显示,5.16.11已经安装成功。
5):设置默认内核
先查看可用内核版本,由上往下序号从0开始,0、1、2.....
egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
[root@localhost ~]# egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
CentOS Linux (5.16.11-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-eb677ce88216471db964c3008620c023) 7 (Core)
从上面看出,新安装的内核顺序为0,所有设置内核序号0即可
grub2-set-default 0
最后重启生效
reboot
重启再次查看内核版本,已成功
[root@localhost ~]# uname -r
5.16.11-1.el7.elrepo.x86_64
6):启动BBR加速
现在和centos 8一样启动即可
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
# 保存配置文件
sysctl -p
检查bbr,当返回结果包含bbr,则启用成功
sysctl net.ipv4.tcp_available_congestion_control
lsmod | grep bbr
网上有一键脚本,也可以使用,比如魔改版BBR
,