---
title: HugePages调优
description: "启用HugePages使操作系统能够支持大于默认值（通常为4KB）的内存页面。使用大页可以减少访问页表条目所需的系统资源量来提高系统性能。HugePages可用于32位和64位的系统配置。根据内核版本和硬件架构，大页的大小从2MB到256MB不等。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpcindapp/tngg/kunpenghpcsolution_05_0015.html
sourcePath: /source/zh/kunpenghpcs/hpcindapp/tngg/kunpenghpcsolution_05_0015.html
indexId: 29310d880898a17b681083fa546cb69d89dd4906e6acc80ce57d436ee64c738669
---
# HugePages调优

#### 原理

启用HugePages使操作系统能够支持大于默认值（通常为4KB）的内存页面。使用大页可以减少访问页表条目所需的系统资源量来提高系统性能。HugePages可用于32位和64位的系统配置。根据内核版本和硬件架构，大页的大小从2MB到256MB不等。

以下是使用HugePages的优点：

- 通过增加TLB命中来提高性能。
- 页面被锁定在内存中，不会被交换出来，保证像SGA这样的共享内存保留在RAM中。
- 连续的页面是预先分配的，不能用于其他任何东西，而只能用于System V共享内存。
- 由于更大的页面大小，对于虚拟内存的这部分的内核而言，更少的记录工作。


#### 使用方法

1. 执行以下命令启动透明大页（RHEL和CentOS 7.6默认启动）。

```
echo always > /sys/kernel/mm/transparent_hugepage/enabled
```


2. 执行以下命令安装libhugetlbfs。

```
yum install libhugetlbfs -y
```


3. 执行以下命令运行程序添加-x LD_PRELOAD=/usr/lib64/libhugetlbfs.so的参数。

```
mpirun -x LD_PRELOAD=/usr/lib64/libhugetlbfs.so ./a.out
```
