Singleton: system-wide page deduplication in virtual environments
Singleton
此论文是HPDC’12上的一篇文章,今天特意总结一下,希望对读者会有所帮助。
相关资料
- Page Cache Management in Virtual Environments
这篇文章是Singleton的详细版 - 作者
姓名 | 主页 | 谷歌学术 | dblp |
---|---|---|---|
Prateek Sharma | Prateek Sharma | Prateek Sharma | Prateek Sharma |
Purushottam Kulkarni | Purushottam Kulkarni | Purushottam Kulkarni | Purushottam Kulkarni |
摘要
Singleton,一个基于KVM的全系统级内存去重方案,以提高内存使用效率。
在KVM系统中,存在一个问题:double-caching,在主机和虚拟机的page cache上都缓存相同的磁盘块,这样浪费了宝贵的物理内存,从而导致内存压力增加。
实现
cache-scrubbing
Singleton使用KSM及其维护的页面索引来搜索虚拟机中存在的页面,KSM维护了所有虚拟机页面的索引,然后我们在主机的page cache中寻找是否有与虚拟机页面相同的页,如果存在,我们就在主机的page cache中去掉重复的页,这个过程称为cache-scrubbing。显然,经历了cache-scrubbing之后,double caching的问题就解决了,因为此刻只有客户机的page cache缓存了磁盘块的内容,而主机page cache的那份内容已被擦除。
Scrubbing频率控制
Scrubbing的频率越高,ksm的overhead就越高,为此,我们需要根据当前系统的内存使用情况,采用不同的频率。如果当前系统内存不足,那么Scrubbing频率就增加,这样就能及时地节省出内存来;如果当前系统内存充足,那么Scrubbing频率就降低以节省开销。
总结
Singleton通过cache-scrubbing解决了double caching的问题,但是,主机的page cache作为客户机page cache的备用层,完全将其备用层擦除也会带来性能上的损失。