日暮星辰

Zach's Blog

centos7内核升级最新BBR内核

CENTOS7作为常用的服务器系统,其正式版的内核都是相当保守的。以下介绍以下升级最新版本的内核方法,目的是为了实现内核的BBR功能,改善CENTOS7的网络功能

BBR:Google 开源了其 TCP BBR 拥塞控制算法,并提交到了 Linux 内核,从 4.9 开始,Linux 内核已经用上了该算法。

一、升级内核

1.1 查询内核版本:

cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
uname -r
5.2.13-1.el7.elrepo.x86_64

由以上可见,我使用的是CentOS 7.7版,内核为5.2.13

1.2 增加升级内核源

CentOS允许使用 ELRepo 第三方源升级内核版本。 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

1.3在源中查询内核相关包

yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

1.4安装最新的主线稳定内核

yum --enablerepo=elrepo-kernel install kernel-ml

1.5确认后,重启系统,检查内核版本

uname -r

二、开启BBR加速

2.1 手动配置BBR设置

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

检查是否生效,显示有tcp_bbr即生效.

lsmod | grep bbr

2.2 或者使用bbr脚本设置BBR生效

yum -y install wget
wget --no-check-certificatehttps://github.com/teddysun/across/raw/master/bbr.sh
chmod +x bbr.sh
./bbr.sh

按任意键运行完成后,运行lsmod | grep bbr确认是否生效

三、设置GRUB默认的内核版本

3.1 检查系统目前可用的内核版本

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

记住最新版本的序号

3.2 配置默认GRUB配置的默认启动内核设置

vim /etc/default/grub

把GRUB_DEFAULT=saved改为GRUB_DEFAULT=“想要启动的内核序号” ,保存配置文件后关闭配置文件。

3.3 重建内核配置

grub2-mkconfig -o /boot/grub2/grub.cfg

3.4 重启系统检查是否生效

确认内核是否为设置的对应版本

uname -r

确认bbr配置是否生效,显示是否带有bbr.

lsmod | grep bbr

写在最后:需要注意的是本来bbr.sh脚本可以自动设置更新最新的内核启用bbr,但是实际过程中发现有时候重启后内核恢复为旧版本。因此第三点仍然需要进行设置。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注