25.2. 系统内存概述
Linux 内核旨在最大程度提高系统内存(RAM)中资源的利用率。由于这些设计特性,根据工作负载的内存要求,系统内存部分在内核内代表工作负载使用,而一小部分内存仍保持可用。这个空闲内存被保留:特殊系统分配和其他低或高优先级系统服务。系统内存的其余部分专用于工作负载本身,并分为以下两类:
- 文件内存
这个类别中添加的页面代表持久性存储中的部分文件。这些页面缓存中的页面可以在应用程序的地址空间中映射或取消映射。您可以使用应用程序使用
mmap系统调用将文件映射到其地址空间中,或使用缓冲的 I/O 读写系统调用对文件进行操作。缓冲区的 I/O 系统调用以及直接映射页面的应用程序可以重新使用未映射的页面。因此,内核将这些页面存储在缓存中,特别是当系统没有运行任何内存密集型任务时,以避免对同一组页面造成昂贵的 I/O 操作。
- 匿名内存
- 此类别的页面由动态分配的进程使用,或者与持久性存储中的文件无关。这组页面会备份每个任务的内存中控制结构,如应用堆栈和堆区域。