Thermostat: Application-transparent Page Management for Two-tiered Main Memory
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区域暴露给客户机操作系统,客户机操作系统可以向其迁移内存。