美文网首页
Linux系统手动更换内核

Linux系统手动更换内核

作者: 霸气龙先森 | 来源:发表于2020-03-30 15:49 被阅读0次

前言

一般而言,在云计算商那里“租”了一台服务器之后,我一般会选择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.92016年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-GPG-KEY-elrepo.org

安装ELRepo的 yum 源到系统

$ yum install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm

安装新内核啦

查看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 "{printi++" : "$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

到这里,基本上就成功了!

最后

其实大家觉得这样很麻烦,也可以去网上找一键脚本。但是我觉得这并不是很好的习惯,不能对脚本产生过度依赖,除非你是买一台vps小鸡当玩具玩,否则千万不要用脚本,更不要在生产环境用这种一键脚本。很多人连一键脚本的内容都没瞟一眼,在搜索引擎找到后,直接就运行,造成重启后开不了机的,也大有人在!

我不是说不能用所谓的一键脚本,我也经常用。我的观点是,不应该对一键脚本产生过度依赖,同时尽量不要在生产环境用!

如果可以,也可以看一看哪些写的比较好的脚本,多研究研究也是不错的,“先懂后懒”嘛!


微信公众号:爪哇派生

QQ群:821557332

个人网站(博客):https://www.52bess.com

GitHub:https://github.com/besscroft

如果您想支持和鼓励我一下,欢迎打赏哦!

*版权声明:版权归作者本人所有,尊重原创,推送文章除非无法确认,都会注明作者和来源。如果出处有误或侵犯到原作者权益,实属无心之举,请务必与我联系删除或授权事宜。本简书号所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处

相关文章

  • Linux系统手动更换内核

    前言 一般而言,在云计算商那里“租”了一台服务器之后,我一般会选择CentOS 7系统,所以这篇文章,就以Cent...

  • 如何编译和更换Linux系统内核

    如何编译和更换Linux系统内核 step0 — 完成编译和安装Linux需要的基本条件 内核源代码从http:/...

  • Linux笔记链接

    手动配置IP系统服务硬链接与软链接SSHDYUM,RPM与源码安装计划任务FTP日志轮转Linux系统内核删除文件...

  • Linux内核与发行版

    Linux内核 Linux内核是什么 Linux内核是Linux操作系统的核心, 负责硬件管理, 比如管理内存、管...

  • linux基本操作

    linux简介 linux 是一套操作系统 Linux系统内核为linux。 内核是一个电脑程序组成操作系统的核心...

  • CentOS7 开启BBR 加速

    先查看系统内核版本,低于4.10的需要先更换内核版本 uname -r 更换内核版本 1 导入公钥 rpm --i...

  • arm下交叉编译RTL8189FTV wifi驱动

    准备: 1.目标系统的linux内核 查看系统内核 umane -a Linux aml 4.19.7-aml-s...

  • Linux内核手动升级 / Linux kernel upgra

    Linux内核手动升级 内核函数地址:从 /proc/kallsyms 文件中得到地址cat /proc/kall...

  • 【Linux】 Linux CentOS yum 方式内核升级

    内核升级解决Linux内核漏洞,一般Linux内核升级存在两种方式,一种将新版内核下载到服务器上,手动编译,适合高...

  • CentOS启动流程

    一、Linux内核的组成 相关概念: Linux系统的组成部分:内核+根文件系统内核功能包括进程管理、内存管理、网...

网友评论

      本文标题:Linux系统手动更换内核

      本文链接:https://www.haomeiwen.com/subject/vwyvuhtx.html