---
title: OS配置
description: "本节将介绍基于openEuler操作系统，进行Linux内核Page Size调优操作。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/softwareinst/instg/instg_0100.html
sourcePath: /source/zh/canncommercial/900/softwareinst/instg/instg_0100.html
indexId: ef89bb504315f58e1e357eac9d3083dbe8e303a24f0cbda4b8460a7bc6ec48a064
---
# 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内核页表大小。

方式一：下载官网(https://www.openeuler.openatom.cn/zh/)提供的64k内核安装包，执行如下命令安装。
```
rpm -ivh --nodeps --force *.rpm
```


方式二：源码编译安装。

1. 安装所需依赖。

```
yum install -y ncurses-devel bc openssl-devel rpm-build bison flex rsync dwarves elfutils-libelf-devel
```


2. 获取内核源码。

```
yum -y install kernel-source
```


  下载的内核源码保存在/usr/src目录下。

3. 编译内核。

  a. 修改.config文件，执行以下命令打开配置文件。

```
cd /usr/src/linux-5.10.0-254.0.0.158.oe2203sp4.aarch64
vim .config
```


    在.config文件中，修改为CONFIG_LOCALVERSION="64k"。主要用于新内核版本号显示，便于区分默认内核和64k内核。

  b. 使配置文件生效，修改内核参数。

```
make menuconfig
```


  c. 进入图形化界面，进入以下路径“Kernel Features ->Page Size”，将Page Size设置为64KB，并保存退出。
  d. 执行编译命令。

```
make rpm-pkg -j
```


    编译结束后，生成的内核rpm安装包保存在/root/rpmbuild/RPMS/aarch64路径下。

4. 安装内核包。

```
cd /root/rpmbuild/RPMS/aarch64
rpm -ivh --nodeps --force *.rpm
```


5. 重启服务器。

```
reboot
```


6. 重启之后，执行命令查看内核，检查page size。

```
uname -a
```


  查看结果已修改为64k。


#### 性能测试结果

本次测试模型均来自MindSpeed LLM，详见官网(https://gitcode.com/Ascend/MindSpeed-LLM/tree/master)。


**表1 实验数据**

| os | 模型 | 实验编号 | 推理时长(S) page size 4K | 推理时长(S) page size 64k | 性能提升（%） |
| --- | --- | --- | --- | --- | --- |
| openEuler 22.03 SP4 | llama2\_7b | 实验1 | 15.49 | 13.83 | 10.7166 |
| openEuler 22.03 SP4 | llama2\_7b | 实验2 | 16.02 | 14.18 | 11.4856 |
| openEuler 22.03 SP4 | llama2\_7b | 实验3 | 15.73 | 13.99 | 11.0617 |
| openEuler 22.03 SP4 | llama2\_7b | 平均 | 15.75 | 14 | 11.0923 |
| openEuler 22.03 SP4 | deepseek\_r1 | 实验1 | 10.91 | 9.79 | 10.2658 |
| openEuler 22.03 SP4 | deepseek\_r1 | 实验2 | 11.03 | 9.79 | 11.2421 |
| openEuler 22.03 SP4 | deepseek\_r1 | 实验3 | 10.99 | 9.36 | 14.8317 |
| openEuler 22.03 SP4 | deepseek\_r1 | 平均 | 10.98 | 9.65 | 12.1166 |
