OS配置
本节将介绍基于openEuler操作系统,进行Linux内核Page Size调优操作。
原理
页表在操作系统中作为最基础的内存分配结构,ARM64 支持 4K、16K、64K 不同大小的页表。当前页表大小只支持静态配置,不支持动态修改。页表大小与服务器性能息息相关,针对推理场景下,不同业务要求调整页表大小,可以得到可观的性能收益。
调优配置
以在Atlas 900 Pod A2上安装openEuler 22.03 LTS SP4为例演示调优操作。
openEuler 22.03 LTS SP4默认使用的是4k页表,现将页表调整为64k,并测试调整前后常见的NLP模型的推理性能。
Linux内核页表大小查询命令:
getconf PAGESIZE
可以通过以下两种方式调整Linux内核页表大小:
方式二:源码编译安装。
- 安装所需依赖。
yum install -y ncurses-devel bc openssl-devel rpm-build bison flex rsync dwarves elfutils-libelf-devel
- 获取内核源码
yum -y install kernel-source
下载的内核源码保存在/usr/src目录下:

- 编译内核。
- 修改.config文件,执行以下命令打开配置文件。
cd /usr/src/linux-5.10.0-254.0.0.158.oe2203sp4.aarch64 vim .config
在.config文件中,修改为CONFIG_LOCALVERSION="64k"。主要用于新内核版本号显示,便于区分默认内核和64k内核。
- 使配置文件生效,修改内核参数:
make menuconfig
- 进入图形化界面,进入以下路径,将Page Size设置为64k,并保存退出。

- 执行编译命令:
make rpm-pkg -j
编译结束后,生成的内核rpm安装包保存在/root/rpmbuild/RPMS/aarch64路径下。

- 修改.config文件,执行以下命令打开配置文件。
- 安装内核包。
cd /root/rpmbuild/RPMS/aarch64 rpm -ivh --nodeps --force *.rpm
- 重启服务器:
reboot
- 检查page size。
重启之后,执行命令查看内核,
uname -a
查看结果已修改为64k。

性能测试结果
os |
模型 |
实验次数 |
推理时长(S) page size 4K |
推理时长(S) page size 64k |
性能提升(%) |
|---|---|---|---|---|---|
openEuler 22.03 SP4 |
llama2_7b |
实验1 |
15.49 |
13.83 |
10.7166 |
实验2 |
16.02 |
14.18 |
11.4856 |
||
实验3 |
15.73 |
13.99 |
11.0617 |
||
平均 |
15.75 |
14 |
11.0923 |
||
deepsek_r1 |
实验1 |
10.91 |
9.79 |
10.2658 |
|
实验2 |
11.03 |
9.79 |
11.2421 |
||
实验3 |
10.99 |
9.36 |
14.8317 |
||
平均 |
10.98 |
9.65 |
12.1166 |
父主题: 高性能配置