第 36 章 配置巨页
物理内存以固定大小的块的形式进行管理,称为页。在 x86_64 架构中,由 Red Hat Enterprise Linux 8 支持,默认的内存页大小为 4 KB
。此默认页面大小被证明适用于常规用途的操作系统,如 Red Hat Enterprise Linux,它支持许多不同类型的工作负载。
但是,在某些情况下,特定应用程序可能会从使用更大的页面中受益。例如,在使用 4 KB
页面时,如果应用程序需要处理大量的、相对固定的数据集合时(有几百兆字节甚至数千兆字节数据)可能会遇到性能问题。这种数据集可能需要大量的 4 KB
页面,这可能导致操作系统和 CPU 的大量开销。
这部分提供有关 RHEL 8 中巨页的信息以及如何配置它们。
36.1. 可用的巨页功能
在 Red Hat Enterprise Linux 8 中,您可以使用巨页来处理大数据集的应用程序,并改进此类应用程序的性能。
以下是 RHEL 8 支持的巨页方法:
HugeTLB 页
HugeTLB 页面也称为静态巨页。有两种方法可以保留 HugeTLB 页面:
- 在引导时:这可以增加成功的几率,因为在引导时内存还没有很大的碎片。但是,在 NUMA 机器上,页面数量会自动在不同的 NUMA 节点间进行分隔。
有关在引导时影响 HugeTLB 页行为的参数的更多信息,请参阅 在引导时保留 HugeTLB 页的参数,以及如何使用这些参数来在引导时配置 HugeTLB 页,请参阅 在引导时配置 HugeTLB 页 。
- 在运行时:它允许您为每个 NUMA 节点保留巨页。如果在引导过程中以早期方式进行运行时保留,则可能会降低内存碎片的可能性。
有关在运行时影响 HugeTLB 页行为的参数的更多信息,请参阅 在运行时保留 HugeTLB 页的参数,以及如何使用这些参数在运行时配置 HugeTLB 页,请参阅 在运行时配置 HugeTLB 页 。
透明巨页 (THP)
使用 THP 时,内核会自动将巨页分配给进程,因此不需要手动保留静态巨页。以下是 THP 中的两种操作模式:
-
系统范围
:内核会在可以分配巨页时尝试为进程分配巨页,进程会使用一个大型连续的虚拟内存区域。 针对每个进程
:内核仅将巨页分配给单个进程的内存区域,您可以使用madvise
() 系统调用来指定。注意THP 功能只支持
2 MB
页面。
-