title: “CentOS-7.6 升级内核 && 开启BBR”
date: “2020-07-01”
categories:
- “技术”
tags:
- “内核升级”
- “Linux”
- “Kernel”
toc: false
indent: false
original: false
draft: false

0、系统环境

系统版本 系统当前 系统升级
CentOS 7.6 3.10.0-957.el7.x86_64 5.7.6-1.el7.elrepo.x86_64

1、检查内核版本

# 查看当前内核版本
➜  uname -r
3.10.0-957.el7.x86_64

2、安装升级 repo

# 载入公钥
➜  rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

# 安装 repo
➜  rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

# 载入 elrepo-kernel 元数据
➜  yum --disablerepo=\* --enablerepo=elrepo-kernel repolist

3、升级内核

# 查看可用的 kernel 版本
➜  yum --disablerepo=\* --enablerepo=elrepo-kernel list kernel*
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * elrepo-kernel: hkg.mirror.rackspace.com
Installed Packages
kernel.x86_64                                                                                 3.10.0-957.el7                                                                    @anaconda
kernel-headers.x86_64                                                                         3.10.0-957.el7                                                                    @anaconda
kernel-tools.x86_64                                                                           3.10.0-957.el7                                                                    @anaconda
kernel-tools-libs.x86_64                                                                      3.10.0-957.el7                                                                    @anaconda
Available Packages
kernel-lt.x86_64                                                                              4.4.228-2.el7.elrepo                                                              elrepo-kernel
kernel-lt-devel.x86_64                                                                        4.4.228-2.el7.elrepo                                                              elrepo-kernel
kernel-lt-doc.noarch                                                                          4.4.228-2.el7.elrepo                                                              elrepo-kernel
kernel-lt-headers.x86_64                                                                      4.4.228-2.el7.elrepo                                                              elrepo-kernel
kernel-lt-tools.x86_64                                                                        4.4.228-2.el7.elrepo                                                              elrepo-kernel
kernel-lt-tools-libs.x86_64                                                                   4.4.228-2.el7.elrepo                                                              elrepo-kernel
kernel-lt-tools-libs-devel.x86_64                                                             4.4.228-2.el7.elrepo                                                              elrepo-kernel
kernel-ml.x86_64                                                                              5.7.6-1.el7.elrepo                                                                elrepo-kernel
kernel-ml-devel.x86_64                                                                        5.7.6-1.el7.elrepo                                                                elrepo-kernel
kernel-ml-doc.noarch                                                                          5.7.6-1.el7.elrepo                                                                elrepo-kernel
kernel-ml-headers.x86_64                                                                      5.7.6-1.el7.elrepo                                                                elrepo-kernel
kernel-ml-tools.x86_64                                                                        5.7.6-1.el7.elrepo                                                                elrepo-kernel
kernel-ml-tools-libs.x86_64                                                                   5.7.6-1.el7.elrepo                                                                elrepo-kernel
kernel-ml-tools-libs-devel.x86_64                                                             5.7.6-1.el7.elrepo                                                                elrepo-kernel

# 安装最新主线版本的kernel
# lt:long term support,长期支持版本
# ml:mainline,主线版本
➜  yum --disablerepo=\* --enablerepo=elrepo-kernel install  kernel-ml.x86_64  -y

# 删除旧版本工具包
➜  yum remove kernel-tools-libs.x86_64 kernel-tools.x86_64  -y

# 安装新版本工具包
➜  yum --disablerepo=\* --enablerepo=elrepo-kernel install kernel-ml-tools.x86_64  -y

4、内核启动顺序

# 查看内核插入顺序
➜  awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (5.7.6-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
2 : CentOS Linux (0-rescue-f3296d4df760440c9ddd35b809fb282a) 7 (Core)
或
➜  grep "^menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2
CentOS Linux (5.7.6-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-f3296d4df760440c9ddd35b809fb282a) 7 (Core)

# 查看当前实际启动顺序
➜  grub2-editenv list
saved_entry=CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)

# 设置默认启动
➜  grub2-set-default 'CentOS Linux (5.7.6-1.el7.elrepo.x86_64) 7 (Core)'
➜  grub2-editenv list
saved_entry=CentOS Linux (5.7.6-1.el7.elrepo.x86_64) 7 (Core)
或
➜  grub2-set-default 0  # 0与上面文件/etc/grub2.cfg中的第一行一致
➜  grub2-editenv list
saved_entry=0

5、重启 && 检查

➜  reboot
➜  5.7.6-1.el7.elrepo.x86_64

6、开启bbr

# 修改内核参数
➜  vim /etc/sysctl.conf
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

# 刷新内核参数
➜  sysctl -p

# 验证是否开启bbr
➜  sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = reno cubic bbr
➜  lsmod | grep bbr
tcp_bbr                20480  2

参考文章:
1、https://www.cnblogs.com/ding2016/p/10429640.html
2、https://apad.pro/centos-bbr/

上一篇 下一篇