文章目录
  1. 1. SmartMD
    1. 1.1. 相关资料
    2. 1.2. 问题
    3. 1.3. 设计
      1. 1.3.1. 概要
      2. 1.3.2. 监视单元
      3. 1.3.3. 选择单元
      4. 1.3.4. 转换单元
    4. 1.4. 总结

SmartMD

此论文是我们实验室的工作,发表在ATC’17上,今天特意总结一下,希望对读者会有所帮助。

相关资料

问题

大页可以带来系统性能的提升,但是内存去重效果较差;而Linux KSM为了去重效果好,拆分大页,牺牲了大页的优势。如何获取大页带来的性能优势,同时又保持较好的去重效果,这正是SmartMD所要解决的问题。

设计

SmartMD的主要思想是拆分高重复率的冷大页以节省内存空间,拆分完的大页在变热的时候,将小页重新合并为大页以提高系统的性能。

概要

SmartMD有三个单元构成:监视单元、选择单元、转换单元。

监视单元

监视单元使用线程定期扫描页面以测量页面访问频率和重复率,下图展示了监视单元的工作流程。

选择单元

为了提高内存访问性能,选择单元根据两个度量(即访问频率和重复率)选择候选大页进行拆分。

选择单元判定大页是冷的还是热的,判定大页的重复率,它的工作流程是:
扫描大页时,选择单元首先读取其访问频率, 如果此页面被指定为冷的,则选择单元将进一步确定其重复率是否大于设定的阈值, 如果是的话,就拆分该页面。 另一方面,当选择已拆分大页进行合并时,选择单元只选择热页作为候选对象。

转换单元

转换单元负责大页和小页之间的转换,包括大页的拆分和拆分页面的合并。

为了降低大页和小页之间的转换成本,我们提出了一种自适应转换方案,以根据内存空间利用率来提高SmartMD的性能。 这个想法是:如果系统有足够的可用内存空间,我们只使用大页来提高系统性能;如果内存空间不足,我们则将大页分解为小页,以提高重删效率。

总结

这项工作提出了SmartMD(一种自适应和高效的方案)来管理具有不同大小页面的内存。 SmartMD的主要思想是拆分高重复率的冷大页以节省内存空间,拆分完的大页在变热的时候,将小页重新合并为大页以提高系统的性能。因此SmartMD可以获得大页带来的系统性能提升,并同时获得较好的去重效果。

文章目录
  1. 1. SmartMD
    1. 1.1. 相关资料
    2. 1.2. 问题
    3. 1.3. 设计
      1. 1.3.1. 概要
      2. 1.3.2. 监视单元
      3. 1.3.3. 选择单元
      4. 1.3.4. 转换单元
    4. 1.4. 总结