本文参考自以下三篇文章:
1. 执行以下命令切换至 root 帐户。
sudo su -
2. 安装 Linux Kernel 5.19。
目前,elrepo / kernel ml 分支上已提供 Linux Kernel 5.19.x Stable。使用以下命令按顺序安装。
# 同时安装 kernel、kernel-core、kernel-modules
dnf install https://mirrors.aliyun.com/elrepo/kernel/el8/x86_64/RPMS/kernel-ml-5.19.1-1.el8.elrepo.x86_64.rpm https://mirrors.aliyun.com/elrepo/kernel/el8/x86_64/RPMS/kernel-ml-core-5.19.1-1.el8.elrepo.x86_64.rpm https://mirrors.aliyun.com/elrepo/kernel/el8/x86_64/RPMS/kernel-ml-modules-5.19.1-1.el8.elrepo.x86_64.rpm
# 安装 kernel-modules-extra
dnf install https://mirrors.aliyun.com/elrepo/kernel/el8/x86_64/RPMS/kernel-ml-modules-extra-5.19.1-1.el8.elrepo.x86_64.rpm
# 安装 kernel-devel
dnf install https://mirrors.aliyun.com/elrepo/kernel/el8/x86_64/RPMS/kernel-ml-devel-5.19.1-1.el8.elrepo.x86_64.rpm
# 安装 kernel-headers
dnf --allowerasing install https://mirrors.aliyun.com/elrepo/kernel/el8/x86_64/RPMS/kernel-ml-headers-5.19.1-1.el8.elrepo.x86_64.rpm
# 同时安装 kernel-tools、kernel-tools-libs
dnf --allowerasing install https://mirrors.aliyun.com/elrepo/kernel/el8/x86_64/RPMS/kernel-ml-tools-5.19.1-1.el8.elrepo.x86_64.rpm https://mirrors.aliyun.com/elrepo/kernel/el8/x86_64/RPMS/kernel-ml-tools-libs-5.19.1-1.el8.elrepo.x86_64.rpm
以下步骤 3~5 可忽略
3. 更换 grub 配置。
vim /etc/default/grub
4. 按 i 切换至编辑模式,将 GRUB_DEFAULT=saved 修改为 GRUB_DEFAULT=0。完成后按 Esc 并输入 :wq 保存文件。
5. 执行以下命令,重新生成 Kernel 配置。
grub2-mkconfig -o /boot/grub2/grub.cfg
6. 执行以下命令,重启机器。
reboot
7. 执行以下命令,检查是否更改成功。
uname -r
8. 执行以下命令,查看所有已安装的 kernel。
dnf list installed kernel*
rpm -qa | grep kernel
9. 执行以下命令,删除所有旧版内核。
dnf remove $(rpm -q kernel-core | grep -v $(uname -r))
dnf remove $(rpm -q kernel-devel | grep -v $(uname -r))
10. 开启 Google 的 BBR TCP 拥塞控制内核模块。执行以下命令,编辑 /etc/sysctl.conf 文件。
vim /etc/sysctl.conf
11. 按 i 切换至编辑模式,添加如下内容。完成后按 Esc 并输入 :wq 保存文件。
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
12. 执行以下命令,从/etc/sysctl.conf配置文件中加载内核参数设置。
sysctl -p
13. 依次执行以下命令,验证是否成功开启了 BBR。
sysctl net.ipv4.tcp_congestion_control
# 显示如下内容即可:
# net.ipv4.tcp_congestion_control = bbr
sysctl net.ipv4.tcp_available_congestion_control
# 显示如下内容即可:
# net.ipv4.tcp_available_congestion_control = reno cubic bbr
14. 执行以下命令,查看内核模块是否加载。
lsmod | grep bbr
# 返回如下信息,表示开启成功
# tcp_bbr 20480 266
15. (可忽略)最后,参照步骤 3~5 改回 GRUB_DEFAULT=saved 以加快开机速度。最终安装的 Kernel 如下。
dnf list installed kernel*
# 显示如下已安装的内核软件包
kernel-ml.x86_64 5.19.1-1.el8.elrepo @@commandline
kernel-ml-core.x86_64 5.19.1-1.el8.elrepo @@commandline
kernel-ml-devel.x86_64 5.19.1-1.el8.elrepo @@commandline
kernel-ml-headers.x86_64 5.19.1-1.el8.elrepo @@commandline
kernel-ml-modules.x86_64 5.19.1-1.el8.elrepo @@commandline
kernel-ml-modules-extra.x86_64 5.19.1-1.el8.elrepo @@commandline
kernel-ml-tools.x86_64 5.19.1-1.el8.elrepo @@commandline
kernel-ml-tools-libs.x86_64 5.19.1-1.el8.elrepo @@commandline