Singleton

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

相关资料

姓名 主页 谷歌学术 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的备用层,完全将其备用层擦除也会带来性能上的损失。