CentOS 7 升级内核并开启 BBR

By | 最新修改:2024-08-17

前言

本文的主要内容

本文主要介绍了如何在 CentOS 7 下升级内核版本并且启用网络拥塞控制算法 BBR。

关于 BBR

什么是 BBR

BBR 是谷歌开源的一款致力于传输控制协议(TCP)网络拥塞控制的算法。它集成于 4.9 以上版本的 Linux 内核里面,可通过安装更高版本的内核以支持 BBR。

启用 BBR 的好处

启用它,明显提高服务器的网络呑吐量,对于流量大的站点,效果显著。

Google BBR


步骤一:升级系统软件包并查看当前内核版本

升级软件包

yum update -y
# 更新完毕后启动系统

查看当前内核版本

uname -r

执行结果:

3.10.0-1160.105.1.el7.x86_64

v3.10.x,此时系统的内核版本明显不符合启用 BBR 的条件,接下来安装新版本的内核。


步骤二:安装高版本内核

关于ELRepo 的更多信息请前往: https://elrepo.org/tiki/HomePage

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel -y install kernel-ml kernel-ml-devel
yum install -y grub2

步骤三:设置默认启动内核

要将 4.9+ 版本的 Linux 内核设置为启动系统时默认选择的内核。

查看内核候选顺序

首先要查看当前内核的候选顺序,要找到高版本内核的序号。

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

# 若出现 “grep: /etc/grub2.cfg: No such file or directory” 的错误,
# 运行以下命令解决:
grub2-mkconfig -o /boot/grub2/grub.cfg
# 再次运行刚才的命令

执行结果:

[root@localhost ~]# egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
CentOS Linux (6.6.9-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-1160.105.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-d021f81b629c4242b5fc45597856d339) 7 (Core)

以上执行结果列表行的顺序从 0 开始,第一个候选项是 0,第二个是 1,依此类推。

设置新的默认启动内核版本

将新安装高版本内核设为系统启动默认项。

# 因为是第一个候选项,所以是第 0 项
grub2-set-default 0

更改完必须重启服务器。

重启完成再重新登录 SSH。

重启后查看当前使用的默认内核

uname -r

执行结果:

6.6.9-1.el7.elrepo.x86_64

由此可见,CentOS 7 的内核已经被升级成 6.6.9 版本,已达到启用 BBR 的条件。


步骤四:设置 BBR

本章节启用 BBR。

查看当前的 TCP 拥塞控制方式

sysctl net.ipv4.tcp_congestion_control

执行结果:

net.ipv4.tcp_congestion_control = cubic

启用 BBR

执行以下命令以启用 BBR:

bash -c 'echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf'
bash -c 'echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf'
# 如果出现“文件不存在”的错误,
# 其实这已经是设置了BBR的,重启系统一下就好了
sysctl -p

执行结果:

net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

重启服务器。

再次查看 BBR 是否已经生效:

[root@localhost ~]# sysctl net.ipv4.tcp_congestion_control
net.ipv4.tcp_congestion_control = bbr

如得到以上的结果,则表示 BBR 已经启用。

如果以后执行系统更新,旧内核重新被使用,默认内核被覆盖,那么此时可以按照以上教程重新设置默认内核为最新的版本。

本文主要讲述了如何升级 CentOS 7 的内核版本,以及启用 BBR 拥塞控制算法。

欢迎访问本人的博客和关注微信公众号!



程序知路

鉴于本人的相关知识储备以及能力有限,本博客的观点和描述如有错漏或是有考虑不周到的地方还请多多包涵,欢迎互相探讨,一起学习,共同进步。

本文章可以转载,但是需要说明来源出处!

本文使用的部分图片来源于网上,若是侵权,请与本文作者联系删除: admin@icxzl.com