双层调度特性
通过修改CentOS 7.6内核以及在宿主机和虚拟机上进行安装,以支持一些特性并提升整机性能。
内核说明
通过在编译修改过的CentOS 7.6内核,并安装于宿主机和虚拟机上,能够支持以下特性,提升整机性能:
- vcpu preempt:优化虚拟机VCPU调度,减轻虚拟机CPU超分场景下可能出现的VCPU得不到调度的问题。
- pvspinlock锁优化:优化VCPU等锁时间长导致性能下降的问题。
- guest vcpu topology:解决原生CentOS 7.6内核下虚拟机不正确显示CPU拓扑的问题。

pvspinlock锁优化特性默认不开启,需要修改虚拟机内部cmdline,添加arm_pvspin选项。特性开启后,预期可以在虚拟机内message日志中看到如下图信息:
内核安装
主机和虚拟机都需要进行内核安装。
- 安装编译依赖,以虚拟化主机安装为例,虚拟机安装类型为“Virtualization Host”。
- 从鲲鹏社区下载kernel代码库。
1
git clone https://github.com/kunpengcompute/kernel-alt.git
- 下载内核源码包并安装。
1 2
wget https://archive.kernel.org/centos-vault/altarch/7.6.1810/os/Source/SPackages/kernel-alt-4.14.0-115.el7a.0.1.src.rpm rpm -ivh kernel-alt-4.14.0-115.el7a.0.1.src.rpm
- 拷贝文件至指定目录,做好编译准备。
1 2 3 4 5
cd kernel-alt cp -f *patch ~/rpmbuild/SOURCES/ cp -f kernel-alt-4.14.0-aarch64.config ~/rpmbuild/SOURCES/ cp -f kernel-alt-4.14.0-aarch64-debug.config ~/rpmbuild/SOURCES/ cp -f kernel-alt.spec ~/rpmbuild/SPECS/
- 安装依赖包。
1
yum -y install m4.aarch64 gcc.aarch64 xmlto.aarch64 asciidoc.noarch openssl-devel.aarch64 hmaccalc.aarch64 python-devel.aarch64 newt-devel.aarch64 perl-ExtUtils-Embed.noarch git.aarch64 elfutils-devel.aarch64 zlib-devel.aarch64 binutils-devel.aarch64 bison.aarch64 audit-libs-devel.aarch64 java-devel numactl-devel.aarch64 pciutils-devel.aarch64 ncurses-devel.aarch64 rpm-build
- 开始编译。
1 2
cd ~/rpmbuild/SPECS/ rpmbuild -bb kernel-alt.spec
- 安装编译内核。
1 2
cd ~/rpmbuild/RPMS/aarch64 rpm -ivh kernel-4.14.0-115.el7.0.2.aarch64.rpm
- 将grub启动项设置为新安装的内核并重启系统。
- 内核安装成功后,检查OS内核版本。
1
uname -r
可查看到如下所示的版本信息。
父主题: CentOS 7.6调优