关于linux:Linux-内核更新

5次阅读

共计 2226 个字符,预计需要花费 6 分钟才能阅读完成。

[Linux 零碎手动更换内核]

前言

一般而言,在云计算商那里“租”了一台服务器之后,我个别会抉择CentOS 7 零碎,所以这篇文章,就以 CentOS 为例(仿佛有一点题目党的嫌疑?

根本不会介绍 BBR 的原理,须要具体理解,能够拜访 research,我技术并不够优良,很难解释分明,还请见谅!

先讲讲 BBR 吧!Wiki 百科给出的解释是Bottleneck Bandwidth and Round-trip propagation time (BBR),是 Google 在 2016 年开发的 TCP 拥塞控制算法(开源了)。TCP 拥塞控制算法有很多,BBR 是其中一种,然而因为它杰出的成果,被很多人采纳。至于 linux 内核什么时候开始原生反对的,网上的说法真的是形形色色,很多人文章感觉就是相互抄,连2.6.* 的说法都能蹦出来(我狐疑是一些采集站)。相对而言,很多大佬的博客文章,就比拟谨严一些,基本上都是4.9。抱着不懂就差的态度,我去 Google 略微搜了一下,不敢确定是不是肯定是对的。Wiki 百科的具体阐明,能够找到如下一条阐明:

内核

初始发行日期

最新版本

维护者

反对状态

备注

4.9

2016 年 12 月 11 日

4.9.148

葛雷格·克罗哈曼

长期反对版本,从 2016 年 12 月至 2023 年 1 月

开始反对 BBR congestion control。

更换 / 更新内核

这时候咱们来更换内核吧,这里我的测试机器是中国香港 ECS。

  • 以后的 Kernel 版本

$ uname -r

  • 更新软件包

$ yum update -y

ELRepo 我的项目

这里咱们须要用到 Repo 我的项目 Enterprise Linux 软件包的 RPM 存储库。

  • 导入 ELRepo 公钥

$ rpm –import https://www.elrepo.org/RPM-GP…

  • 装置 ELRepo 的 yum 源到零碎

$ yum install https://www.elrepo.org/elrepo…

装置新内核啦

  • 查看 ELRepo 仓库下,在以后零碎反对的内核包 ELRepo 会提供 he Linux Kernel Archives 用资源。

$ yum –disablerepo=”*” –enablerepo=”elrepo-kernel” list available

  • 装置最新的主线稳固内核

$ yum –enablerepo=elrepo-kernel install kernel-ml

更改 grub 配置

在装置完新的 Kernrl 之后,零碎是不会帮你切换到新内核的,重启也不行,须要咱们本人设置,将新内核设置为默认启动选项。

  • 查看所有的 Kernel

$ rpm -qa | grep kernel

  • 查看以后正在应用的 Kernrl

$ uname -r

  • 查看 Kernel 启动程序

$ awk -F’ ‘$1==”menuentry ” {print i++ ” : ” $2}’ /etc/grub2.cfg

装置完之后,内核没有切换过来,通过查看得悉,新装置的内核位于第一个地位,标记为 0。这是咱们须要批改 /etc/default/grub 文件,以便于让零碎在启动时让新内核成为默认选项。

$ vim /etc/default/grub

须要把 GRUB_DEFAULT=saved 改成 GRUB_DEFAULT=0,而后保留。当然,你也能够在装置其它版本的 Kernel 之后,更改GRUB_DEFAULT 的值。

  • 从新生成 Kernrl 配置

$ grub2-mkconfig -o /boot/grub2/grub.cfg

  • 而后重启机器

$ reboot

  • 重启结束后,查看是否胜利

$ uname -r

删除多余内核

你能够在装置新内核之后,抉择把其它内核删掉,然而请留神千万不要删除正在运行的那个内核!!!

  • 查看所有的 Kernel

$ rpm -qa | grep kernel

  • 删除你想删除的内核

$ yum remove kernel-[old_kernel_version]

举个例子

$ yum remove kernel-3.10.0-957.el7.x86_64

  • 从新生成 Kernrl 配置

$ grub2-mkconfig -o /boot/grub2/grub.cfg

开启 BBR

整了这么半天,除了更新下内核,另一个重要的事件就是须要开启 BBR 了。

  • 编辑 /tec/sysctl.conf 文件

$ vim /etc/sysctl.conf

  • 增加如下内容:

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

  • 或者应用 tee 命令重定向追加到 /tec/sysctl.conf 文件中:

$ echo ‘net.core.default_qdisc=fq’ | sudo tee -a /etc/sysctl.conf
$ echo ‘net.ipv4.tcp_congestion_control=bbr’ | sudo tee -a /etc/sysctl.conf

  • 从配置文件“/etc/sysctl.conf”加载内核参数设置

$ sysctl -p

  • 验证是否胜利(是否开启了 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

  • 查看内核模块是否加载

$ lsmod | grep bbr

正文完
 0