CentOS7更换内核安装BBR

讲道理,CentOS7想开个BBR如果不用一键脚本的话,还真有点麻烦。。。如果是Debian/Ubuntu的话基本就是几条命令就能解决的事,但是由于CentOS的内核一向过于古老,所以你们懂的= =

BBR这项新功能是在kernel4.9中加入的,而CentOS都还停留在2.x的内核,所以要给CentOS装BBR第一件事就是想办法装上高版本的内核。

那么我们首先安装elrepo源:

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

安装yum-utils:

yum -y install yum-utils

启用elrepo-kernel:

yum-config-manager --enable elrepo-kernel

安装elrepo内的最新内核:

yum -y install kernel-ml kernel-ml-devel

完成之后,一般情况下,新安装的内核就应该已经在grub2的0号启动位了,不过为了以防万一,还是自己执行下面的命令手动查看一番:

awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

如图所示的回显,4.x的内核就是我们刚新安装上的内核了,确实是在0号:

接下来设置grub2默认的启动项为0,如果你的4.x内核启动编号不是0就把下面命令的0改成对应你自己的:

grub2-set-default 0

然后直接重启机器:

reboot

如果内核更换成功并且grub2启动没问题的话,稍等片刻机器就能重新开机,但如果哪个地方出了问题可能就挂掉了,此时你只能通过VNC或者IPMI检查。也有可能会出现重启之后内核没有更换成功的问题,这就要自己检查了。

这里我是用的GoogleCloud,在系统重启之后先看下内核是否更换成功:

uname -a

返回4.x的内核信息就说明更换成功:

所以接下来就是开启BBR了,直接依次执行下面的三条命令即可完成开启BBR的操作:

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p

最后验证BBR是否启用成功:

sysctl net.ipv4.tcp_congestion_control
lsmod | grep bbr

返回如下图信息就说明大功告成了:

发表回复