CentOS系统下内存页Page size如何从64K切换到4K
本节内容主要指导用户完成CentOS系统下如何修改内存页Page size的大小。
- 查看当前内存页大小。
getconf PAGESIZE
回显信息为“65536”,表示为64K。

- 下载内核源码。
wget https://git.centos.org/sources/kernel/c8/a857effa0971fa1b6790bf8df25f69dda20acdd3
如果环境上已经有内核源码,则可以跳过本步骤和3。如果下载时提示“ERROR: cannot verify git.centos.org's certificate”,则可以在命令最后增加--no-check-certificate解决。
- 解压文件获得内核源码linux-4.18.0-193.28.1.el8_2,将源码目录移动到“/usr/src”目录下。
tar -xf a857effa0971fa1b6790bf8df25f69dda20acdd3 ll mv linux-4.18.0-193.28.1.el8_2 /usr/src

- 安装内核编译依赖的软件包。
yum install -y vim rpm-build net-tools bc xmlto asciidoc openssl-devel hmaccalc python-devel newt-devel perl elfutils-devel zlib-devel binutils-devel audit-libs-devel java-devel numactl-devel pciutils-devel ncurses-devel perl-ExtUtils-Embed git
- 进入内核源码目录,复制当前系统的内核编译文件,保证内核其他配置项和当前系统保持一致。
cd /usr/src/linux-4.18.0-193.28.1.el8_2 cp /boot/config-`uname -r` ./.config
- 修改内核Page size大小为4KB。
- 打开menuconfig。
make menuconfig
- 选择。

- 按“Enter”键进入下一级菜单,选择。

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

- 选择两次“Exit”保存并退出。


- 打开menuconfig。
- 查看“.config”配置文件中内存页配置,确认修改是否生效。
grep -i pages .config
从下面的回显信息中可以看到,4K配置项已开启,64K配置项已注释。

- 修改内核版本。
- 编译内核二进制包,在编译时会加载修改后的config配置文件,会提醒用户确认部分修改配置项,Page size务必选择为4KB,后面的选项建议根据业务实际需求调整。
- 安装内核RPM包。
rpm -ivh /root/rpmbuild/RPMS/aarch64/kernel-4.18.0_3-7.aarch64.rpm

- 查看内核是否安装成功。
rpm -qa | grep kernel
如果回显信息中出现上述安装的内核版本号,则表明内核安装成功。

- 重启系统,进入编译安装的内核。
reboot
出现如下信息时,请选择已安装的内核。

若无法通过BMC进入远程控制台选择启动内核,可执行下列命令选择内核。
- 查看当前系统内的所有内核。
awk -F\' '$1=="menuentry " {print i++ " : "$2}' /boot/efi/EFI/*/grub.cfg - 通过grub2-set-default选择新安装的内核为默认内核。
grub2-set-default 0
- 重启服务器。
reboot
- 查看当前系统内的所有内核。
- 检查内核版本号。
uname -a
如果回显信息中的内核版本号与上面安装的版本号一致,则表明无问题。

- 查看当前的内存页。
getconf PAGESIZE
如果回显结果显示4096,则表示内存页已成功切换为4K。







