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例子