鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

openEuler系统下内存页Page Size如何从64K切换到4K

内核版本为4.19对应的openEuler 20.03系列操作系统默认pagesize为64KB,可以通过执行getconf PAGESIZE命令查看。您可以根据业务需要进行修改。具体修改方法如下:

  1. 查看当前内存页大小。
    getconf PAGESIZE

    回显信息为“65536”,表示为64K。

  2. 获取内核源码。
    1. 创建目录并进入该目录。
      mkdir -p /home/kernel-bcache
      cd /home/kernel-bcache
    2. 下载内核源码包至“/home/kernel-bcache”目录。

      下载路径:https://repo.openeuler.org/openEuler-20.03-LTS-SP1/source/Packages/

    3. 解压源码包。
      rpm2cpio kernel-4.19.90-2109.1.0.0108.oe1.src.rpm | cpio -divm
      tar -zxvf kernel.tar.gz
    4. 配置镜像源。
      1. 通过SFTP工具将“openEuler-20.03-LTS-SP1-everything-aarch64-dvd.iso”上传到服务器上“/root”目录下。

        openEuler 20.03 LTS SP1镜像下载地址:

        https://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS-SP1/ISO/aarch64/openEuler-20.03-LTS-SP1-everything-aarch64-dvd.iso

      2. 创建一个本地文件夹用于挂载本地镜像。
        mkdir -p /iso
      3. 将iso文件挂载到本地文件夹。
        mount /root/openEuler-20.03-LTS-SP1-everything-aarch64-dvd.iso /iso
    5. 创建镜像Yum源。
      1. 打开配置文件。
        vi /etc/yum.repos.d/openEuler.repo
      2. “i”进入编辑模式,在文件中加入以下内容。
        [Base]
        name=Base
        baseurl=file:///iso
        enabled=1
        gpgcheck=0
        priority=1
         
        [openEuler-source]
        name=openEuler-source
        baseurl=http://repo.openeuler.org/openEuler-20.03-LTS-SP1/source/
        enabled=1
        gpgcheck=1
        gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS-SP1/source/RPM-GPG-KEY-openEuler
         
        [openEuler-os]
        name=openEuler-os
        baseurl=http://repo.openeuler.org/openEuler-20.03-LTS-SP1/OS/aarch64/
        enabled=0
        gpgcheck=1
        gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS-SP1/OS/aarch64/RPM-GPG-KEY-openEuler
         
        [openEuler-everything]
        name=openEuler-everything
        baseurl=http://repo.openeuler.org/openEuler-20.03-LTS-SP1/everything/aarch64/
        enabled=0
        gpgcheck=1
        gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS-SP1/everything/aarch64/RPM-GPG-KEY-openEuler
         
        [openEuler-EPOL]
        name=openEuler-epol
        baseurl=http://repo.openeuler.org/openEuler-20.03-LTS-SP1/EPOL/aarch64/
        enabled=1
        gpgcheck=0
         
        [openEuler-update]
        name=openEuler-update
        baseurl=http://repo.openeuler.org/openEuler-20.03-LTS-SP1/update/aarch64/
        enabled=1
        gpgcheck=0
      3. “Esc”键退出编辑模式,输入“:wq!”后按“Enter”键保存并退出文件。
    6. 安装依赖。
      dnf -y install ncurses-devel bison m4 flex rpm-build rpmdevtools asciidoc audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-devel gtk2-devel java-1.8.0-openjdk-devel xz-devel libbabeltrace-devel libunwind-devel newt-devel numactl-devel openssl-devel pciutils-devel perl-generators python3-devel python3-docutils xmlto zlib-devel createrepo genisoimage
  3. 修改内核配置文件。
    1
    2
    3
    cd /home/kernel-bcache/kernel
    cp arch/arm64/configs/openeuler_defconfig .config
    make menuconfig
    
  4. 修改内核Page Size大小为4KB。
    1. 选择Kernel Features

    2. “Enter”键进入下一级菜单,选择Page size(64KB)

    3. “Enter”键进入选择,按“Space”键选择4KB。

    4. 按两次“Exit”保存并退出。

  5. 确认Page Size是否已修改为4K。
    vi .config

    如果回显信息中“CONFIG_ARM64_4K_PAGES=y”,则表示已正确配置。

  6. 覆盖默认配置文件。
    cp .config arch/arm64/configs/openeuler_defconfig

    输入“y”确认。

  7. 生成内核RPM包。
    1. 安装依赖包。
      yum install -y ncurses-devel bc openssl-devel rpm-build bison flex
    2. 切换到源码根目录下。
      cp /boot/config-$(uname -r) .
    3. 编译RPM包。
      make binrpm-pkg -j48

      建议不要满核编译,例如对于64核处理器,建议运行make binrpm-pkg -j48;对于96核处理器,建议运行make binrpm-pkg -j72,编译过程中尽量不要做其他操作,避免卡死。

    4. 查看生成的内核RPM包。
      ls /home/rpmbuild/RPMS/aarch64/

  8. 安装内核。
    1. 将生成的内核RPM包上传至服务器的“/home/kernel-rpm”目录。
      mkdir -p /home/kernel-rpm
      cd /home/kernel-rpm
      dnf -y install kernel-4.19.90-1.aarch64.rpm
    2. 查看默认内核启动项。
      grub2-editenv list
      • 如果默认版本是新安装的内核版本,则执行8.d
      • 如果默认版本不是新安装的内核版本,则执行8.c
    3. 修改默认内核启动项。
      cat /etc/grub2-efi.cfg  | grep openEuler

      其中“openEuler (4.19.90) 20.03 (LTS-SP1)”为新安装内核版本。

      grub2-set-default "openEuler (4.19.90) 20.03 (LTS-SP1)"
    4. 重启系统。
      1
      reboot
      
  9. 系统重启后通过执行getconf PAGESIZE命令,确认Page Size是否为4K。