---
title: CentOS系统下内存页Page size如何从64K切换到4K
description: "本节内容主要指导用户完成CentOS系统下如何修改内存页Page size的大小。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengfaq/productfaq/osfaq/os_faq_0011.html
sourcePath: /source/zh/kunpengfaq/productfaq/osfaq/os_faq_0011.html
indexId: fd414763fd251facf481bcd2577b10bf392b894296fe9033e4e382fca2cf964e55
---
# CentOS系统下内存页Page size如何从64K切换到4K

本节内容主要指导用户完成CentOS系统下如何修改内存页Page size的大小。

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

```
getconf PAGESIZE
```


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

2. 下载内核源码。

```
wget https://git.centos.org/sources/kernel/c8/a857effa0971fa1b6790bf8df25f69dda20acdd3
```


  如果环境上已经有内核源码，则可以跳过本步骤和3。如果下载时提示“ERROR: cannot verify git.centos.org's certificate”，则可以在命令最后增加--no-check-certificate解决。

3. 解压文件获得内核源码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
```


4. 安装内核编译依赖的软件包。

```
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
```


5. 进入内核源码目录，复制当前系统的内核编译文件，保证内核其他配置项和当前系统保持一致。

```
cd /usr/src/linux-4.18.0-193.28.1.el8_2
cp /boot/config-`uname -r` ./.config
```


6. 修改内核Page size大小为4KB。

  a. 打开menuconfig。

```
make menuconfig
```


  b. 选择“Kernel Features”。
  c. 按“Enter”键进入下一级菜单，选择“Page size（64KB）”。
  d. 按“Enter”键进入选择，按“Space”键选择4KB。
  e. 选择两次“Exit”保存并退出。
7. 查看“.config”配置文件中内存页配置，确认修改是否生效。

```
grep -i pages .config
```


  从下面的回显信息中可以看到，4K配置项已开启，64K配置项已注释。

8. 修改内核版本。
需要保证修改的内核版本大于当前系统的内核版本。您可以通过执行uname -a命令查看内核版本。


  a. 打开Makefile文件。

```
vim Makefile
```


  b. 修改EXTRAVERSION参数。
  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
9. 编译内核二进制包，在编译时会加载修改后的config配置文件，会提醒用户确认部分修改配置项，Page size务必选择为4KB，后面的选项建议根据业务实际需求调整。

  a. 执行以下命令，编译内核，根据回显提示输入1，选择Page size大小为4KB。

```
make binrpm-pkg -j`nproc`
```


  b. 根据实际情况设置虚拟地址空间大小，此处输入1，设置为39bit。
  c. 根据实际情况设置ELF文件配置信息。
  d. 根据实际情况设置网络驱动信息。
    命令执行完成后，可以通过回显信息看到已生成的RPM包所在路径。

  e. 在“/root/rpmbuild/RPMS/aarch64/”目录下可以查看生成的内核RPM包。

```
ll /root/rpmbuild/RPMS/aarch64/
```


10. 安装内核RPM包。

```
rpm -ivh /root/rpmbuild/RPMS/aarch64/kernel-4.18.0_3-7.aarch64.rpm
```


11. 查看内核是否安装成功。

```
rpm -qa | grep kernel
```


  如果回显信息中出现上述安装的内核版本号，则表明内核安装成功。

12. 重启系统，进入编译安装的内核。

```
reboot
```


  出现如下信息时，请选择已安装的内核。

  若无法通过BMC进入远程控制台选择启动内核，可执行下列命令选择内核。 查看当前系统内的所有内核。 awk -F\' '$1=="menuentry " {print i++ " : "$2}' /boot/efi/EFI/*/grub.cfg 通过grub2-set-default选择新安装的内核为默认内核。 grub2-set-default 0 重启服务器。 reboot

13. 检查内核版本号。

```
uname -a
```


  如果回显信息中的内核版本号与上面安装的版本号一致，则表明无问题。

14. 查看当前的内存页。

```
getconf PAGESIZE
```


  如果回显结果显示4096，则表示内存页已成功切换为4K。
