内存管理:原理、工具与优化策略
1. 内存基础概念
1.1 页面状态与相关术语
虚拟内存模型下,页面有四种状态:未分配、已分配但未映射、已分配并映射到主内存、已分配并映射到物理交换设备。基于这些状态,可定义两个重要术语:常驻集大小(RSS)指映射到主内存的页面大小;虚拟内存大小是所有已分配区域的大小。
1.2 页面交换与过度分配
按需页面交换技术随分页虚拟内存支持被引入Unix BSD,后成为标准并在Linux中使用。Linux支持内存过度分配(overcommit),允许分配超过系统存储能力的内存,基于按需页面交换和应用程序不使用大部分分配内存的趋势。过度分配策略可通过参数配置,其后果取决于内核处理内存不足的方式。
1.3 进程交换与文件系统缓存
进程交换是将整个进程在主内存和物理交换设备或文件间移动的技术,源于Unix,用于管理主内存。但该技术会严重降低性能,现代Linux系统不支持,仅依赖页面交换。系统加载后内存使用增加是正常现象,因为操作系统会使用可用内存缓存文件系统以提高性能。当应用程序需要时,内核可快速释放缓存的内存。
1.4 内存使用与饱和
物理内存使用率可通过已使用内存与总内存的比例计算,文件系统缓存的内存可视为未使用,因为应用程序可随时使用。当内存需求超过主内存容量时,会出现内存饱和,操作系统可通过页面交换、进程交换(若支持)或触发OOM Killer来释放内存。虚拟内存的使用也可从使用角度研究,若系统限制虚拟内存,耗尽后内核将无法分配内存。
1.5 内存分配器与共享内存
虚拟内存支持物理内存中的多任务处
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



