操作之前先备份服务器,比如做快照。
[root@test104 ~]# uname -sr
Linux 3.10.0-1160.el7.x86_64
升级内核,BBR内核要求是4.9+,通常来说通过上面这个命令出来的内核版本是在3.x。
升级一下之后是直接变到了6.4.8。
进行下面三个命令即可对内核进行升级:
(1)安装ELRepo仓库:
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
(2)安装最新内核
yum --enablerepo=elrepo-kernel install kernel-ml -y
(3)查看结果
[root@test104 ~]# rpm -qa|grep kernel-ml
kernel-ml-6.4.8-1.el7.elrepo.x86_64
设置默认的grub2引导条目来启用kernel-ml-6.4.8内核
[root@test104 ~]# egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
CentOS Linux (6.4.8-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-1a649b4351414f6c9fe834aa0fdb5c46) 7 (Core)
索引从0开始。这意味着4.9.0内核位于0(CentOS Linux (6.4.8-1.el7.elrepo.x86_64) 7 (Core) 在什么位置就是填几)
grub2-set-default 0
然后直接重启系统
shutdown -r now
重启之后,可以再次使用uname来看一下内核是不是6.4.8版本!
[root@test104 ~]# uname -r
6.4.8-1.el7.elrepo.x86_64
启用BBR直接一次输入下面的命令即可
echo '#bbr' >> /etc/sysctl.conf
echo 'net.core.default_qdisc=fq' >> /etc/sysctl.conf
echo 'net.ipv4.tcp_congestion_control=bbr' >> /etc/sysctl.conf
sysctl -p
使用以下命令确认已启用BBR
[root@test104 ~]# sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = reno cubic bbr
#输出应该类似于net.ipv4.tcp_available_congestion_control = bbr cubic reno(划重点:等于号后面有个bbr就对了)
验证一下:
sysctl -n net.ipv4.tcp_congestion_control
输出应该bbr
最后,检查内核模块是否已加载:
lsmod | grep bbr
输出类似于:
tcp_bbr 16384 10