Oracle 团队提交的一个补丁将有望使 Linux 内核的引导时间大大缩减,最高可以提速 49%。

Oracle 提交补丁,可使 Linux 内核引导提速 6%-49%

Oracle 开发者在邮件列表中指出,该补丁扩展了 padata,使其可以处理多线程作业。padata 原本只是可以用于处理多个并行单线程作业的框架,补丁添加了 padata 在 CPU 内核之间平均分配工作来处理多线程作业的能力,它会将最小工作量分配给适合处理的协作线程,并且在这些协作线程之间进行负载均衡。

该补丁会推迟 Linux 引导中的 struct page init,这是内核引导过程中的一大性能瓶颈,它并不需要并发限制、资源控制或优先级调整。在各种 x86 系统上进行测试,开发者发现该补丁将延迟的初始化速度提高 63% 至 91%,而这可以将内核引导速度提高 6% 至 49%。尤其是在具有大量 RAM 的多节点环境中,性能改进更为明显。

此补丁的改进同时也使启动虚拟机的时间缩减,这对于云计算环境来说非常重要,因为需要应对不断变化的容量/需求伸缩变化的情况。

关于内核版本的定义:

版本性质:主分支ml(mainline),稳定版(stable),长期维护版lt(longterm)

版本命名格式为 “A.B.C”:

数字 A 是内核版本号:版本号只有在代码和内核的概念有重大改变的时候才会改变,历史上有两次变化:
数字 B 是内核主版本号:主版本号根据传统的奇-偶系统版本编号来分配:奇数为开发版,偶数为稳定版
数字 C 是内核次版本号:次版本号是无论在内核增加安全补丁、修复bug、实现新的特性或者驱动时都会改变

1、查看当前系统内核版本

uname -r

3.10.0-514.el7.x86_64

2、升级内核

升级内核需要先导入elrepo的key,然后安装elrepo的yum源:

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum install -y https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm

如果要安装ml内核,使用如下命令:

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

如果要安装lt内核,使用如下命令:

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

3、设置为默认内核

grub2-set-default 0
grub2-mkconfig -o /boot/grub2/grub.cfg 

4、删除旧的内核

查看已安装的内核

rpm -qa | grep kernel

删除旧内核

yum remove 内核名称

5、安装新版本工具包(可选操作)

移除旧版本

yum remove kernel-tools-libs kernel-tools -y

安装新版本

如果安装ml版本执行:

yum --disablerepo=* --enablerepo=elrepo-kernel install kernel-ml-tools

如果安装lt版本执行:

yum --disablerepo=* --enablerepo=elrepo-kernel install kernel-lt-tools

6、reboot重启机器,然后查看内核版本

uname -r

5.3.8-1.el7.elrepo.x86_64