Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第 7 章 内存

本章概述了 Red Hat Enterprise Linux 7 的内存管理功能。第 7.1 节 “注意事项” 讨论影响性能的内存相关因素。第 7.2 节 “监控和诊断性能问题” 教您如何使用红帽企业 Linux 7 工具诊断与内存使用率或配置详情相关的性能问题。第 7.5 节 “配置系统内存容量”第 7.3 节 “配置 HugeTLB Huge 页面” 讨论您可以使用哪些工具和策略解决 Red Hat Enterprise Linux 7 中的与内存相关的性能问题。

7.1. 注意事项

默认情况下,红帽企业 Linux 7 针对中等工作负载进行了优化。如果您的应用程序或工作负载需要大量内存,改变系统管理虚拟内存的方式可能会提高应用程序的性能。

7.1.1. 较大的页大小

物理内存以块的形式进行管理,称为页面。在 Red Hat Enterprise Linux 7 支持的大多数构架中,内存页面的默认大小为 4 KB。此默认页面大小已证明适合通用操作系统,如支持多种不同工作负载的 Red Hat Enterprise Linux 7。
然而,在某些情况下,特定应用程序可能会因使用更大的页面大小而受益。例如,处理数百兆字节甚至几十兆字节(甚至几十 GB)的大型且相对固定的数据集的应用在使用 4 KB 时性能问题可能会有问题。此类数据集可能需要数百千个 4 KB 页面,这可能会导致操作系统和 CPU 的开销。
红帽企业 Linux 7 支持将更大的页面大小用于处理大数据集的应用程序。使用更大的页面大小可提高此类应用程序的性能。
Red Hat Enterprise Linux 7 中提供了两个不同的 大页面功能: HugeTLB 功能,也称为静态巨页,以及 Transparent Huge Page 功能。

7.1.2. 翻译后备缓冲器大小

从页表中读取地址映射非常耗时且耗费资源,因此 CPU 构建时会使用最近使用的地址的缓存:转换查找缓冲区(TLB)。但是,默认 TLB 只能缓存一定数量的地址映射。如果请求的地址映射不在 TLB 中(也就是说,缺少 TLB),则系统仍需要读取页表以确定物理到虚拟地址映射。
由于应用程序内存要求和用于缓存地址映射的页面大小之间的关系,具有大型内存要求的应用程序更有可能遭受 TLB 未命中性能下降的问题,而不是内存要求最低的应用程序。因此,尽可能避免 TLB 未命中非常重要。
HugeTLB 和 Transparent Huge Page 功能允许应用程序使用大于 4 KB 的页面。这允许 TLB 中存储的地址引用更多内存,这可减少 TLB 未命中并提高应用性能。