Centos 8.2升级系统5.9内核及bbr的开启

4.1
(7)

昨天晚上,把阿里云服务器上的Centos8.2系统的内核升级到了5.9版本,具体版本号为5.9.3-1.el8.elrepo。然后,顺便开启了内置的bbr(谷歌开发的拥塞控制算法解析)。今天,把我升级的过程发出来供各位参看,也留下个记录,供自己以后参考。

Centos 8.2升级系统5.9内核及bbr的开启

输入如下命令,确认自己的Centos版本号:

cat /etc/redhat-release

得到如下结果:

CentOS Linux release 8.2.2004 (Core) 

输入如下命令,查看linux内核版本:

 uname -sr

得到如下结果:

Linux 4.18.0-193.14.2.el8_2.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

输入如下命令,获取并安装最新内核升级包:

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
Centos 8.2升级系统5.9内核及bbr的开启

输入y,确认安装即可!到此,你就安装好了最新的内核升级包。安装完成,将显示如下类似内容:

已安装:
  elrepo-release-8.2-1.el8.elrepo.noarch 

输入如下命令,查看最新版内核包有哪些内容:

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

得到如下结果:

Centos 8.2升级系统5.9内核及bbr的开启

得到最新的内核版本为5.9.3,当然过几天可能会是更新得内核版本。

输入如下命令,查看当前已安装内核包有哪些内容:

rpm -qa | grep kernel

得到如下输出(当然,不同厂家得服务器,内核版本略有不用。而且数量也未必相同):

kernel-core-4.18.0-193.14.2.el8_2.x86_64
kernel-devel-4.18.0-193.14.2.el8_2.x86_64
kernel-tools-libs-4.18.0-193.14.2.el8_2.x86_64
kernel-4.18.0-193.el8.x86_64
kernel-4.18.0-193.14.2.el8_2.x86_64
kernel-modules-4.18.0-193.14.2.el8_2.x86_64
kernel-tools-4.18.0-193.14.2.el8_2.x86_64
kernel-core-4.18.0-193.el8.x86_64
kernel-modules-4.18.0-193.el8.x86_64
kernel-headers-4.18.0-193.14.2.el8_2.x86_64

以上这些旧版内核内容输出,一会要用到,所以要获取下(随后,升级完内容,会卸载旧版内核)

接下来,输入如下命令,安装新版内核:

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

安装过程是全自动得,结果如下所示:

接下来,我们再次输入如下命令,查看当前已安装内核:

rpm -qa | grep kernel

得到如下内容:

kernel-core-4.18.0-193.14.2.el8_2.x86_64
kernel-devel-4.18.0-193.14.2.el8_2.x86_64
kernel-tools-libs-4.18.0-193.14.2.el8_2.x86_64
kernel-4.18.0-193.el8.x86_64
kernel-ml-modules-5.9.3-1.el8.elrepo.x86_64
kernel-4.18.0-193.14.2.el8_2.x86_64
kernel-modules-4.18.0-193.14.2.el8_2.x86_64
kernel-tools-4.18.0-193.14.2.el8_2.x86_64
kernel-ml-devel-5.9.3-1.el8.elrepo.x86_64
kernel-core-4.18.0-193.el8.x86_64
kernel-modules-4.18.0-193.el8.x86_64
kernel-ml-core-5.9.3-1.el8.elrepo.x86_64
kernel-headers-4.18.0-193.14.2.el8_2.x86_64
kernel-ml-5.9.3-1.el8.elrepo.x86_64

与未安装新版内核对比,多了四个5.9.3内核。说明安装成功了!

输入如下命令,验证当前默认启动内核:

grubby --default-kernel

得到如下内容,则证明新安装的内核已经被设置成默认启动了,重启服务器进入使用新的内核文件。

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

好了,reboot一下(重启服务器)。完事后,输入如下命令,验证当前内核版本:

uname -sr

得到如下内容:则证明5.9.3内核已经安装成功

Linux 5.9.3-1.el8.elrepo.x86_64

接下来,输入如下命令,移除旧版内核:

yum -y remove kernel-core-4.18.0-193.14.2.el8_2.x86_64 kernel-devel-4.18.0-193.14.2.el8_2.x86_64 kernel-tools-libs-4.18.0-193.14.2.el8_2.x86_64 kernel-4.18.0-193.el8.x86_64 kernel-4.18.0-193.14.2.el8_2.x86_64 kernel-modules-4.18.0-193.14.2.el8_2.x86_64 kernel-tools-4.18.0-193.14.2.el8_2.x86_64 kernel-core-4.18.0-193.el8.x86_64 kernel-modules-4.18.0-193.el8.x86_64 kernel-headers-4.18.0-193.14.2.el8_2.x86_64

这里需要注意得是,我的旧版内核未必跟你的一样,新版内核也未必跟你的一样。所以,当你删除旧版内核时,要跟之前获取的内核版本对比,删除老旧的内核版本就好。多个内核之间用空格隔开。

最后,我们会得到如下移除成功的提示内容:

输入如下命令,再次查看已安装的内核版本:

rpm -qa | grep kernel

得到如下内容:

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

只剩下了新版内核,证明移除了旧版内核,到此新版内核升级完美结束!

下面,我们来开启bbr,可以一定程度上提高并发连接,一定程度上提高带宽利用来,一定程度上减少服务器丢包率:

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

得到如下内容:

vm.swappiness = 20
kernel.sysrq = 1
net.ipv4.neigh.default.gc_stale_time = 120
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_synack_retries = 2
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

到此,bbr就开启完毕了(bbr在内核版本大于4.9会自动内置的,你需要做的只是去开启一下而已)

下面,我们通过几个命令来验证下bbr是否开启成功:

输入如下命令:

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结果,那么就开启成功了。

共计7人评分,平均4.1

到目前为止还没有投票~

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

原创文章,作者:古哥,转载需经过作者授权同意,并附上原文链接:https://iymark.com/articles/707.html

(4)
微信公众号
古哥的头像古哥管理团队
上一篇 2020年11月04日 20:51
下一篇 2020年11月06日 23:45

你可能感兴趣的文章

发表回复

登录后才能评论
微信小程序
微信公众号