更新时间:2021-08-26 GMT+08:00
分享

双层调度特性

内核说明

通过在编译修改过的CentOS 7.6内核,并安装于宿主机和虚拟机上,能够支持以下特性,提升整机性能:

  • vcpu preempt:优化虚拟机VCPU调度,减轻虚拟机CPU超分场景下可能出现的VCPU得不到调度的问题。
  • pvspinlock锁优化:优化VCPU等锁时间长导致性能下降的问题。
  • guest vcpu topology:解决原生CentOS 7.6内核下虚拟机不正确显示CPU拓扑的问题。

pvspinlock锁优化特性默认不开启,需要修改虚拟机内部cmdline,添加arm_pvspin选项。特性开启后,预期可以在虚拟机内message日志中看到如下图信息:

内核安装

主机和虚拟机都需要进行内核安装。

  1. 安装编译依赖,以虚拟化主机安装为例,虚拟机安装类型为“Virtualization Host”。

  2. 从鲲鹏社区下载kernel代码库

    1
    git clone https://github.com/kunpengcompute/kernel-alt.git
    

  3. 下载内核源码包并安装。

    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
    

  4. 拷贝文件至指定目录,做好编译准备

    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/
    

  5. 安装依赖包

    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
    

  6. 开始编译。

    1
    2
    cd ~/rpmbuild/SPECS/
    rpmbuild -bb kernel-alt.spec
    

  7. 安装编译内核

    1
    2
    cd ~/rpmbuild/RPMS/aarch64
    rpm -ivh kernel-4.14.0-115.el7.0.2.aarch64.rpm
    

  8. grub启动项设置为新安装的内核并重启系统。
  9. 内核检查

    1
    uname -r
    

    内核安装成功后,检查OS内核版本,可查看到一下版本信息,如下图:

分享:

    相关文档

    相关产品

close