CentOS 7/8 升级最新内核并开启 BBR

BBR 是 Google 开源的一种TCP网络拥塞优化算法,可以加速访客到你服务器的访问速度,对网站优化有一定的帮助。

这里使用 CentOS 7 和 CentOS 8 系统给大家演示一下如何安装新版的内核(因为 BBR 要内核4.9以上)并且开启BBR 加速。

开源地址:https://github.com/google/bbr

1. CentOS7

1.1 安装新版内核

升级内核一般是为了支持新特性、新设备、新功能,一些老的内核也可能存在一些bug。升级内核也可以对照理解为Windows打补丁。
因为我给系统上安装的版本是CentOS-8-x86_64-1905,该版本默认安装的内核是4.18.0。而最新版的内核是5.4.6,系统中的内核与最新内核查了好多个版本,需要升级一下。
Linux内核eprl源网站:http://elrepo.org/tiki/tiki-index.php

首先是查看当前服务器的内核版本。

uname -sr

uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。

-a或--all:显示全部的信息;
-m或--machine:显示电脑类型;
-n或-nodename:显示在网络上的主机名称;
-r或--release:显示操作系统的发行编号;
-s或--sysname:显示操作系统名称;
-v:显示操作系统的版本;
-p或--processor:输出处理器类型或"unknown";
-i或--hardware-platform:输出硬件平台或"unknown";
-o或--operating-system:输出操作系统名称;
--help:显示帮助;
--version:显示版本信息。

BBR内核要求是4.9+,通常来说你通过上面这个命令出来的内核版本是在3.几。

接下来启用 ELRepo 仓库

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

然后安装新版的稳定版内核

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

安装完毕后使用下面的命令查看是否安装成功。

rpm -qa | grep kernel

我的显示如下:

kernel-3.10.0-862.14.4.el7.x86_64
kernel-ml-5.3.8-1.el7.elrepo.x86_64
kernel-3.10.0-1062.4.1.el7.x86_64
kernel-headers-3.10.0-1062.4.1.el7.x86_64
kernel-3.10.0-957.5.1.el7.x86_64
kernel-3.10.0-1062.1.2.el7.x86_64
kernel-tools-3.10.0-1062.4.1.el7.x86_64
kernel-tools-libs-3.10.0-1062.4.1.el7.x86_64
kernel-3.10.0-957.1.3.el7.x86_64

里面kernel-ml-5.3.8-1.el7.elrepo.x86_64就是安装的新版版本内核(你看到这篇教程的时候可能内核版本有变化,随机应变)

接下来需要设置系统启动顺序,使用下面的命令。

sudo egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'

我的显示如下:

CentOS Linux (5.3.8-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-1062.4.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-1062.1.2.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.5.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.1.3.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-862.14.4.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-618ca2de6e204efbb013b592564ef36a) 7 (Core)

排在第一的就是CentOS Linux (5.3.8-1.el7.elrepo.x86_64) 7 (Core),从第一行为0依次数,0、1、2、3这样,看你的新内核是第几。
然后就输入下面的命令(命令例子为第1行)

sudo grub2-set-default 0

接下来重启服务器

reboot

再次查看内核版本

uname -r

内核版本显示为4.9以上,本文更新的时候新版版本是5.3.8,就证明安装成功了。

重建内核配置

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

重启系统验证,没问题就OK了。

1.2 开启BBR

要在新安装好的CentOS7上面启用新内核,只需要复制下面的代码执行就可以了。

echo 'net.core.default_qdisc=fq' | sudo tee -a /etc/sysctl.conf
echo 'net.ipv4.tcp_congestion_control=bbr' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

然后输入下面的命令查看是否开启BBR成功

sudo sysctl net.ipv4.tcp_available_congestion_control

成功的话应该是下面这种输出

net.ipv4.tcp_available_congestion_control = bbr cubic reno

继续验证

sudo sysctl -n net.ipv4.tcp_congestion_control

输出应该是

bbr

最后看内核模块是否加载

lsmod | grep bbr

输出应该是类似下面这种

tcp_bbr 16384 0

2. CentOS 8

2.1 安装内核升级的 ELRepo 源

查看当前的Linux内核版本

uname -sr

显示内容如下

Linux 4.18.0-80.11.2.el8_0.x86_64

先查看安装了哪个内核升级包

rpm -qa | grep elrepo.noarch

显示如下

elrepo-release-8.0-2.el8.elrepo.noarch

已经安装了,就先卸载掉,然后再安装新的

yum -y remove elrepo-release-8.0-2.el8.elrepo.noarch.rpm

我这个服务器的内核版本不是最新的,需要升级,按照Linux内核官网的办法来操作安装内核升级的ELRepo 源

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm

在yum的elrepo源中,看看有没有最新版本内核

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

显示内容如下

上次元数据过期检查:0:00:41 前,执行于 2019年12月25日 星期三 23时51分38秒。
可安装的软件包
bpftool.x86_64 5.4.6-1.el8.elrepo elrepo-kernel
kernel-ml.x86_64 5.4.6-1.el8.elrepo elrepo-kernel
kernel-ml-core.x86_64 5.4.6-1.el8.elrepo elrepo-kernel
kernel-ml-devel.x86_64 5.4.6-1.el8.elrepo elrepo-kernel
kernel-ml-doc.noarch 5.4.6-1.el8.elrepo elrepo-kernel
kernel-ml-headers.x86_64 5.4.6-1.el8.elrepo elrepo-kernel
kernel-ml-modules.x86_64 5.4.6-1.el8.elrepo elrepo-kernel
kernel-ml-modules-extra.x86_64 5.4.6-1.el8.elrepo elrepo-kernel
kernel-ml-tools.x86_64 5.4.6-1.el8.elrepo elrepo-kernel
kernel-ml-tools-libs.x86_64 5.4.6-1.el8.elrepo elrepo-kernel
kernel-ml-tools-libs-devel.x86_64 5.4.6-1.el8.elrepo elrepo-kernel
perf.x86_64 5.4.6-1.el8.elrepo elrepo-kernel
python3-perf.x86_64 5.4.6-1.el8.elrepo elrepo-kernel

2.2 升级内核

查看系统默认安装了哪些内核文件

rpm -qa | grep kernel

显示内容如下:

kernel-4.18.0-80.11.2.el8_0.x86_64
kernel-modules-4.18.0-80.11.2.el8_0.x86_64
kernel-tools-4.18.0-80.11.2.el8_0.x86_64
kernel-core-4.18.0-80.11.2.el8_0.x86_64
kernel-tools-libs-4.18.0-80.11.2.el8_0.x86_64

系统已经安装的内核版本是4.18,最新版的内核是5.4.6,对照着已经安装的内核文件,我们通过下面的命令来升级现有内核:

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

如果没有意外,现在新的内核就已经安装好了,我们查看一下是不是这样:

rpm -qa | grep kernel

显示如下

kernel-4.18.0-80.11.2.el8_0.x86_64
kernel-ml-devel-5.4.6-1.el8.elrepo.x86_64
kernel-modules-4.18.0-80.11.2.el8_0.x86_64
kernel-tools-4.18.0-80.11.2.el8_0.x86_64
kernel-core-4.18.0-80.11.2.el8_0.x86_64
kernel-ml-core-5.4.6-1.el8.elrepo.x86_64
kernel-ml-5.4.6-1.el8.elrepo.x86_64
kernel-tools-libs-4.18.0-80.11.2.el8_0.x86_64
kernel-ml-modules-5.4.6-1.el8.elrepo.x86_64

查看一下当前的默认启动项

grubby --default-kernel

显示如下:

/boot/vmlinuz-5.4.6-1.el8.elrepo.x86_64

我们新安装的内核已经被设置成默认启动了,重启服务器进入使用新的内核文件。

reboot

重启以后,我们查看一下当前的内核是否更新

uname -sr

显示如下:

Linux 5.4.6-1.el8.elrepo.x86_64

2.3 删除旧内核

新的内核已经生效,下面将旧内核删除就可以了,具体方法是执行命令“yum -y remove ”后将4.18内核的全称贴到这个命令的后面,两个名称之间用空格隔开,查询已经安装内核的命令是“rpm -qa | grep kernel”

yum -y remove kernel-4.18.0-80.11.2.el8_0.x86_64 kernel-modules-4.18.0-80.11.2.el8_0.x86_64 kernel-tools-4.18.0-80.11.2.el8_0.x86_64 kernel-core-4.18.0-80.11.2.el8_0.x86_64 kernel-tools-libs-4.18.0-80.11.2.el8_0.x86_64

看看是不是只有5.4.6内核存在,干净又清爽。

rpm -qa | grep kernel

显示如下

kernel-ml-devel-5.4.6-1.el8.elrepo.x86_64
kernel-ml-core-5.4.6-1.el8.elrepo.x86_64
kernel-ml-5.4.6-1.el8.elrepo.x86_64
kernel-ml-modules-5.4.6-1.el8.elrepo.x86_64

至此,内核升级全部完成。

2.4 BBR 和 BBR2 一键包

2.4.1 什么是BBR2?

BBR2目前还是预览版,是BBR的升级版本,目前还不够成熟,不建议生产环境使用。

BBR2详细说明参见:https://github.com/google/bbr/blob/v2alpha/README.md

同时说明文件里面包含手动安装bbr2的教程和步骤,这里就不复制了。

2.4.2 bbr2一键包

警告:更换内核有风险,若使用本脚本后无法开机造成损失,概不负责。

建议系统 Debian 10 x86_64,理论支持Debian 8+, Ubuntu 16.04+

只适用于KVM虚拟架构VPS,如果是OVZ、Xen、或者独服就别试了。

仅适用于64位(x86_64)系统,不支持x86,不支持CentOS及其他系统

已在 Debian 8/9/10 , Ubuntu 16.04/18.04 中测试通过 (Ubuntu 14.04 失败)

已在以下商家的 Debian 10系统中测试通过:Oracle Public Cloud, DMIT, OLVPS, AlibabaCloud
Debian 10 安装成功率100%

CentOS 系统用户建议使用bbr或者尝试手动安装 bbr2。

wget --no-check-certificate -q -O bbr2.sh "https://raw.githubusercontent.com/yeyingorg/bbr2.sh/master/bbr2.sh" && chmod +x bbr2.sh && bash bbr2.sh auto

重要!请开/关BBR/ECN后重启一下系统。发现脚本可能有BUG导致不生效或者跟旧的bbr等加速共存。

2.4.3 BBR一键包

bbr一键包支持的系统多一些,不过前提是内核版本要支持bbr才行,如果内核版本不行还是需要自己手动更新内核。

系统支持:CentOS 6+,Debian 7+,Ubuntu 12+
虚拟技术:OpenVZ 以外的,比如 KVM、Xen、VMware 等
内存要求:≥128M

wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh

2.4.4 bbr plus一键包

bbr plus就是在原版bbr的基础上进行了参数优化,在某些机器上加速效果比原版的更好。

本文介绍的BBR Plus一键安装脚本,来自网友cx9208。除了BBR Plus外,还另外集成有原版BBR一键安装、魔改BBR一键安装、锐速(lotServer)一键安装,为四合一版本,四个版本可以切换使用。

适用架构:KVM / Xen,不支持OpenVZ(OVZ)。

适用系统:CentOS 7、Debian 8、Debian 9、Ubuntu 16.04、Ubuntu 18.04。

wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh

文章来源:

CentOS7安装新版内核和开启BBR加速教程_BBR2一键包 – 奶爸建站笔记 (naibabiji.com)

怎么给CentOS Linux 8升级内核并开启BBR_centos8.2 更新内核4.18.0-384.el8.x86 64-CSDN博客

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容