第 5 章 内存
预读本章了解红帽企业版 Linux 中可用的内存管理功能,以及如何使用这些管理功能优化系统的内存使用。
5.1. 超大转译后备缓冲器(HugeTLB)
将物理内存地址转译为性能内存地址是内存管理的一部分。物理地址和虚拟地址的映射关系保存在名为页表的数据结构中。因为为每个地址映射读取页表会很消耗时间和资源,所以最近使用的地址都有缓存。这个缓存就称为转译后备缓冲器(TLB)。
但 TLB 只能缓存大量地址映射。如果所要求的地址映射没有在 TLB 中,则必须仍读取页表以决定物理到虚拟地址映射。这就是所谓的“TLB 缺失”。因为其内存要求与用来缓存 TLB 中地址映射的页面之间的关系,所以有大内存要求的程序比使用较少内存的程序更容易受 TLB 缺失影响。因为每个缺失都涉及页表读取,因此尽量避免这些缺失很重要。
超大转译后备缓冲器(HugeTLB)可以很大片段管理内存,以便一次可以缓存更多地址。这样可减少 TLB 缺失的可能性,进而改进有大内存要求的程序性能。
有关配置 HugeTLB 的信息可在内核文档中找到:
/usr/share/doc/kernel-doc-version/Documentation/vm/hugetlbpage.txt