怎么给CentOS Linux 8升级内核并开启BBR

为什么要升级内核?

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

安装内核升级的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

升级内核

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

$ 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

删除旧内核

新的内核已经生效,下面将旧内核删除就可以了,具体方法是执行命令“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

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

开启BBR

什么是BBR?
BBR 可以显著的减少Linux的TCP链接延迟,并提高吞吐量,它是Google开发的一种新型拥堵控制算法。
BBR只负责解决两个问题:
1 降低延迟,方法是降低网络链路上的buffer占用率,这样就非常适合网速比较慢的用户使用。
2 在有一定丢包率的高速网络链路上充分利用网络带宽,这又非常适合高带宽高延迟的用户使用。
开启 BBR 要求 4.10及以上版本 Linux 内核,我们已经将内核升级到了5.x,完全符合升级的条件。
执行以下命令开始升级:

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

检查一下是否开启成功,执行命令:

$ sysctl net.ipv4.tcp_available_congestion_control

显示如下:

net.ipv4.tcp_available_congestion_control = reno cubic bbr

执行命令:

$ sysctl -n net.ipv4.tcp_congestion_control

显示如下:

bbr

执行命令:

$ lsmod | grep bbr

显示如下:

tcp_bbr                20480  1

如果你的系统也是显示的如上述内容,都包含“bbr”,那么你的系统开启BBR成功

你可能感兴趣的:(CentOS)