文章目录
  1. 1. Thermostat
    1. 1.1. 相关资料
    2. 1.2. 介绍
    3. 1.3. 贡献点
    4. 1.4. 实现
      1. 1.4.1. 页面取样
      2. 1.4.2. 页面访问速率计算
      3. 1.4.3. 页面分类
      4. 1.4.4. 错误分类页面的更正
      5. 1.4.5. 页面迁移
      6. 1.4.6. Thermostat例子

Thermostat

此论文是ASPLOS’17上的一篇文章,今天特意总结一下,希望对读者会有所帮助。

  • 在本文中混合内存是指内存中既有DRAM,又有新型内存(NVM),但是目前NVM尚未投入商用,系统中使用的NVM都是在DRAM的基础上使用软件模拟的。

  • Thermostat运行在KVM的虚拟机中,而非运行在主机OS中,这相当于我们修改的是虚拟机的操作系统。

相关资料

姓名 主页 谷歌学术 dblp
Neha Agarwaln Neha Agarwal Neha Agarwal Neha Agarwal
Thomas F. Wenisch Thomas F. Wenisch Thomas F. Wenisch Thomas F. Wenisch

介绍

新型内存(NVM)比DRAM更加密集、更加便宜,但是NVM与DRAM相比有更高的访问延迟。DRAM中不经常访问的应用数据可以存储在NVM中,以显著地节省内存成本。以往对混合内存的研究都假定页面大小为4KB, 然而,在云计算应用中,2MB大页的使用能大大提高系统的性能。Thermostat是一个应用程序透明的大页感知机制,将页面放置在混合内存系统中,同时实现了混合内存的成本优势和大页的性能优势。

贡献点

  • 我们提出一种低开销机制,用于估计由于将特定页面置于NVM中而导致的性能下降。

  • 我们在一个页面(大页与小页)冷热分类系统中使用上述机制,只需要一个输入,该输入代表我们所设定的系统性能下降的最大值。

  • 我们提出一种方法来检测错误分类并纠正它们,从而最小化错误分类对应用吞吐量的影响。

  • 通过在软件中模拟NVM,我们展示了Thermostat利用3%性能下降的代价可以将最高达50%的云应用程序占用内存迁移到NVM中,从而最高可以降低内存成本30%。

实现

Thermostat定期对应用程序占用的一小部分内存进行采样,使用页面poison技术来估计每个页面的访问速率,将页面访问速率较低的页面放置在NVM中。 然后继续监控这些冷页,以便检测并快速更正任何错误分类或行为变化。

页面取样

对于大页,将其拆分为512个小页,假设Accessed位为1的小页有50个,我们在这50个小页中再选择一部分进行取样监视。

页面访问速率计算

利用BadgerTrap计算页面的访问速率。

页面分类

根据用户所设定的系统性能下降的最大值,计算出一个页面访问速率阈值,然后利用页面的访问速率与该阈值进行比较,我们将页面分为冷页或者热页。

错误分类页面的更正

对于已经被迁移到NVM中的冷页,我们对它继续监视,如果之前对该页判断错误,或者随着时间的变化它的访问速率变高,我们就更正错误,将该页迁回到DRAM中。

页面迁移

一旦客户机识别出冷页,就必须将它们迁移到NVM中。 我们在KVM客户机中使用NUMA支持来实现迁移。 NVM内存空间作为单独的NUMA区域暴露给客户机操作系统,客户机操作系统可以向其迁移内存。

Thermostat例子

文章目录
  1. 1. Thermostat
    1. 1.1. 相关资料
    2. 1.2. 介绍
    3. 1.3. 贡献点
    4. 1.4. 实现
      1. 1.4.1. 页面取样
      2. 1.4.2. 页面访问速率计算
      3. 1.4.3. 页面分类
      4. 1.4.4. 错误分类页面的更正
      5. 1.4.5. 页面迁移
      6. 1.4.6. Thermostat例子