讲道理,CentOS7想开个BBR如果不用一键脚本的话,还真有点麻烦。。。如果是Debian/Ubuntu的话基本就是几条命令就能解决的事,但是由于CentOS的内核一向过于古老,所以你们懂的= =
BBR这项新功能是在kernel4.9中加入的,而CentOS都还停留在2.x的内核,所以要给CentOS装BBR第一件事就是想办法装上高版本的内核。
那么我们首先安装elrepo源:
代码语言:javascript复制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:
代码语言:javascript复制yum -y install yum-utils
启用elrepo–kernel:
代码语言:javascript复制yum-config-manager --enable elrepo-kernel
安装elrepo内的最新内核:
代码语言:javascript复制yum -y install kernel-ml kernel-ml-devel
完成之后,一般情况下,新安装的内核就应该已经在grub2的0号启动位了,不过为了以防万一,还是自己执行下面的命令手动查看一番:
代码语言:javascript复制awk -F' '$1=="menuentry " {print i " : " $2}' /etc/grub2.cfg
如图所示的回显,4.x的内核就是我们刚新安装上的内核了,确实是在0号:
接下来设置grub2默认的启动项为0,如果你的4.x内核启动编号不是0就把下面命令的0改成对应你自己的:
代码语言:javascript复制grub2-set-default 0
然后直接重启机器:
代码语言:javascript复制reboot
如果内核更换成功并且grub2启动没问题的话,稍等片刻机器就能重新开机,但如果哪个地方出了问题可能就挂掉了,此时你只能通过VNC或者IPMI检查。也有可能会出现重启之后内核没有更换成功的问题,这就要自己检查了。
这里我是用的GoogleCloud,在系统重启之后先看下内核是否更换成功:
代码语言:javascript复制uname -a
返回4.x的内核信息就说明更换成功:
所以接下来就是开启BBR了,直接依次执行下面的三条命令即可完成开启BBR的操作:
代码语言:javascript复制echo "net.core.default_qdisc=fq" /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" /etc/sysctl.conf
sysctl -p
最后验证BBR是否启用成功:
代码语言:javascript复制sysctl net.ipv4.tcp_congestion_control
lsmod | grep bbr
返回如下图信息就说明大功告成了: