关键词:
操作系统
内存管理
内存回收
内存调节
性能均衡
摘要:
系统级内存回收是提高系统内存利用率的重要技术之一,它实现了对物理内存资源的抽象和管理,通过回收系统非活跃的内存来缓解内存压力,为应用高效使用内存及稳定运行提供了保障。但是,随着云计算、大数据等新型互联网技术的出现,应用处理的数据规模不断增长,系统的内存已经成为稀缺资源,内存管理系统面临着前所未有的挑战。首先,系统级内存回收被动触发,应用运行期间存在大量非活跃内存,系统内存利用效率低。其次,面对复杂的应用场景,系统级内存回收的全局LRU链表机制及内存冷热识别策略,仅采用近期访问热度作为内存活跃与否的评判标准,未考虑不同应用内存敏感度的差异。针对系统内存利用效率低,本文先提出了一种性能感知的单应用内存回收方案PAPR,该方案以进程为基本单位,周期性扫描应用内存,主动回收应用非活跃内存。该方案分成以下四个部分,第一,页面冷热识别,它在某段时间内多次扫描进程的物理页面并统计这些页面的访问频次,从而依据频次来划分页面冷热程度;第二,进程性能评估,用于评估进程运行的性能状态,指导内存调节;第三,内存调节,监控应用性能指标,定量计算应用不同类型页面回收量,递进式回收非活跃内存。第四,反馈式调节,监控内存回收后进程的性能变化,及时调整内存回收策略,保证应用的性能稳定。然后,为了适应生产环境下多应用场景,本文基于PAPR进一步设计了多应用内存调节机制MPAPR,该机制能捕捉内存敏感度弱的应用,回收其非活跃内存,平衡各应用的性能。PAPR以内核模块的方式安全在内核态运行,并未发现内核内存泄漏等安全问题。同时为了验证PAPR的有效性,我们分别选用了不同领域的应用进行实验。实验表明,PAPR在兼顾应用性能情况下,能够有效回收应用非活跃的内存,其中部分应用内存回收量最高可达25%。其次,在多应用场景下,系统级内存回收会导致多个应用性能损失不均衡,本文选取均值、方差评估应用的性能损失程度,为了验证MPAPR的有效性,我们在不同压力下运行多个应用。实验表明,MPAPR能够有效地调节多应用的内存,缓解多应用性能损失的不均衡。