一种基于热页迁移的虚拟机动态缓存方法

文档序号:6541443阅读:240来源:国知局
一种基于热页迁移的虚拟机动态缓存方法
【专利摘要】本发明公开一种基于热页迁移的虚拟机动态缓存方法。该方法利用页表项的访问位监测页面的使用,将所有页面按访问频度(热度)进行排序,实现热页监控;然后通过页面迁移对虚拟机的缓存配额进行调整,优先将访问频度(热度)高的页面迁移到新的缓存分区内,实现动态缓存划分。本发明在虚拟化运行环境中把处理器高速缓存当作一个可管理的资源,所采用的页面迁移机制和热页监控机制的开销能够维持在较低的水平,能够降低并行程序的缓存冲突从而提高缓存利用率,使程序执行效率得到提升,从而比静态划分等方法达到更高的优化效率。
【专利说明】一种基于热页迁移的虚拟机动态缓存方法
【技术领域】
[0001]本发明属于计算机技术、虚拟化【技术领域】,涉及虚拟机管理器的内存管理技术,具体涉及一种基于热页迁移的虚拟机动态缓存方法。
【背景技术】
[0002]在现代计算机系统中,缓存扮演了一个重要的角色。在虚拟化环境中,多个虚拟机并发执行并抢夺共享资源的情况很常见,资源竞争现象同时存在于应用级别与系统级别中,这一现象使得缓存竞争与缓存污染的问题显得尤为突出。在这种情况下,对共享资源竞争情况的探测是十分重要的,而被用于控制竞争访问请求的探测技术能够达到虚拟化系统性能隔离的目的同时使总性能提高。
[0003]对于现有的静态缓存划分策略,其在虚拟机启动时,人工控制其独立使用的缓存的大小。通过页面着色技术,能够把内存页面的一个子集通过着色分配给目标虚拟机使用,利用该技术可以控制在虚拟机管理器中的缓存划分。实验结果显示,通过管理最低级缓存(11c),能够显著提高缓存与程序的性能。但是,静态缓存划分存在两个缺点。首先,缓存划分的大小需要事先决定,且在虚拟机启动后不能改变。其次,预留给虚拟机的缓存份额受到虚拟机所占用的内存比例的限制,因为软件划分策略存在局限性。为了解决这些问题,本项专利提出了 一个在虚拟化平台上的动态缓存划分策略。

【发明内容】

[0004]本发明的目的是建立一种基于热页迁移的虚拟机动态缓存方法,能够用来降低并行程序的缓存冲突,从而提高缓存利用率,使程序执行效率得到提升。
[0005]本发明采用的技术方案如下:
[0006]一种基于热页迁移的虚拟机动态缓存方法,其步骤包括:
[0007]I)热页监控:利用页表项的访问位监测页面的使用,将所有页面按访问频度(热度)进行排序;
[0008]2)页面迁移:通过页面迁移对虚拟机的缓存配额进行调整,优先将访问频度(热度)高的页面迁移到新的缓存分区内,实现动态缓存划分。
[0009]下面具体说明本发明的技术方案:
[0010]1.页面迁移
[0011]每个机器页面会有固定的颜色。但是物理页面的颜色取决于它是映射到了哪一个机器页面上。为了动态的改变分配给客户机的缓存大小,必须能够改变机器页面所对应的物理页面。这一过程被称为页面迁移。页面迁移是动态缓存划分的基础。
[0012]页面迁移有三个基本的步骤,如图1所示。首先,移除物理页面和与之对应的机器页面的映射,以保证迁移过程中页面内容不会发生变化,如图1中(a)图所示。然后把原页面的内容拷贝到具有被请求的颜色的页面上,如图1中(b)图所示。最后,重新建立映射,所有对物理页面的修改将被执行到新的机器页面上,如图1中(C)图所示。[0013]2.热页检测
[0014]页面迁移允许在页面这样的细粒度对虚拟机进行调整。当需要对虚拟机的缓存配额进行调整时,我们选择一些页面然后把它们迁移到新的缓存分区里。但问题是,如何选择应该迁移的页面,即应该迁移哪些页面。
[0015]最简单的重新划分方法是均匀的选择页面。举例来说,如果想把虚拟机的缓存分区(颜色)从1-5调整到1-4,可以把分区5中的所有页面以轮转的次序迁移到分区1-4中。反之,如果要把缓存分区从1-4扩大到1-5,就从分区1-4中随机选择一批页面迁移到分区5中。这种策略保证了迁移完成后的缓存分布与直接进行静态缓存划分的结果是一致的。但是这种策略的缺点就是耗时过长,其带来的开销通常超过划分缓存所带来的性能提升,反而导致虚拟机整体性能下降。
[0016]一个更好的策略是只关注那些被频繁使用的页面,因此本发明引入了热页监控机制来驱动动态缓存划分。热页监控机制把所有页面按访问频度(热度)进行排序。缓存划分模块会首先迁移热度最高的页面。这种策略加速了缓存的划分,也部分解决了由于虚拟机内存大小所带来的缓存分区大小的限制。
[0017]热页监控机制利用了页表项的访问位来监测页面的使用。在分页模式下,当一条指令访问某个虚拟页面时,MMU (Memory Management Unit)自动将该页面对应页表项的Accessed位置I。在操作系统中,这个性质被广泛用于实现页缓存(Page Cache)中的页面老化算法。在使用影子页表的虚拟机环境中,每次内存访问都会通过影子页表映射。所以也可以用类似的方法实现热页监控。
[0018]通过检查访问位是否被置位,能够知道对应的页是否被访问过。为了得到访问频度信息,本发明周期性地扫描影子页表的访问位,并为每个机器页面增加一个计数器来存储页面的热度。在每个采样周期的开始,把每个影子页表的所有访问位清零,并在一段时间后再次扫描它们。如果某一影子页表项被置位,就能知道它在采样周期里被访问了,所以把它的计数器增加。重复这样的“清除-扫描”循环,就能知道每个页的热度。为了得到最近的页面热度信息,对所有计数器应用老化算法。将它们的数值周期性地减半。
[0019]如图2中所示,热页监控机制共有4个参数。我们将清除页表访问位到重新扫描该位的间隔称为“监控窗口”(Window),将两次采样所间隔的时间称为“采样周期”(Period)。将执行一次老化的采样周期数称为“老化周期”(Aging),通常是采样周期的数倍。此外,本发明将每次扫描时所增加的热度值称为热度增量。
[0020]采样周期决定了热页监控的开销。热页监控机制需要对整个影子页表进行扫描,所以这一过程非常耗时。一个较长的扫描周期会降低开销,但同时却增加了遗漏热页的概率。通过实验与权衡分析,优选把采样周期设为50?200毫秒,进一步优选为100毫秒。
[0021]监控窗口的大小决定了页面热度的分布。过长的监控窗口会使各页面的热度值趋于平均,但是过短的监控窗口会导致收集不到足够的热页。通过实验分析,发现I?5毫秒是较为合适的窗口长度,进一步优选为2毫秒。
[0022]老化周期与热度增量共同决定了热度的最大值,以及热度统计随时间变化的敏感度。较短的老化周期有助于使热度计数器迅速反映最近的热度变化,较长的老化周期则能更好地反映页面热度的历史状况,避免程序的突发行为对决策产生不良影响。确定了老化周期后,再根据它计算出一个合适的热度增量,以保证页面的热度值不会溢出。在本发明中,老化周期的值设为50~200ms,而热度增量为64~512。进一步优选地,老化周期的值设为100ms,而热度增量为127。在这种配置下,热度值会收敛到255,且热度计数器只保留800毫秒以内的历史信息。
[0023]本发明在虚拟化运行环境中把处理器高速缓存当作一个可管理的资源,在开源的虚拟化平台Xen上实现了配置缓存分区的必要机制,包括高效静态划分以及更细粒度的动态划分机制。实验结果证实,本发明的虚拟机动态缓存划分策略是有效的,能够比静态划分等方法达到更高的优化效率。具体来说,本发明提出的基于热页迁移的虚拟机动态缓存划分方法具有以下优点与积极效果:
[0024]1.页面迁移机制和热页监控机制的开销维持在了一个较低的水平。
[0025]表1显示了一个页面在整个页面迁移过程中的每个阶段的平均耗时。同时也给出了在逆映射机制下开销降低的结果。时间单位是纳秒。
[0026]表1.页面迁移在有/无逆映射机制下的开销
【权利要求】
1.一种基于热页迁移的虚拟机动态缓存方法,其步骤包括: 1)利用页表项的访问位监测页面的使用,将所有页面按访问频度进行排序; 2)通过页面迁移对虚拟机的缓存配额进行调整,优先将访问频度高的页面迁移到新的缓存分区内。
2.如权利要求1所述的方法,其特征在于:步骤I)通过周期性地扫描影子页表的访问位,并为每个机器页面增加一个计数器来得到页面的访问频度信息。
3.如权利要求2所述的方法,其特征在于:对所述计数器应用老化算法,在每个老化周期对每个计数器进行移位减半操作。
4.如权利要求3所述的方法,其特征在于:为每个计数器设置一个时间戳,当一个页面被访问时,同时更新热度计数器与时间戳,通过比较计数器时间戳和全局时间戳,只在时间戳溢出时或者用户想要获取热度信息时,按照每个时间戳对热度计数器进行老化,从而加速老化过程。
5.如权利要求1所述的方法,其特征在于,步骤I)对页面的监控包括四个参数:清除页表访问位到重新扫描该位的间隔,称为监控窗口 ;两次采样所间隔的时间,称为采样周期;执行一次老化的采样周期数,称为老化周期;每次扫描时所增加的热度值,称为热度增量。
6.如权利要求5所述的方法,其特征在于:所述采样周期为50?200毫秒;所述监控窗口的长度为I?5毫秒;所述老化周期的值为50?200ms,所述热度增量为64?512。
7.如权利要求1所述的方法,其特征在于:对于工作集较大的程序,步骤I)只在需要迁移页面的时候启动热页监控,以降低热页监控造成的开销。
8.如权利要求7所述的方法,其特征在于:利用PMU提供的简单的性能指标判断程序的行为是否发生变化,如果发现程序运行到一个新的阶段,则启动热页监控,在重新分区结束后,停止热页监控。
9.如权利要求1所述的方法,其特征在于,步骤2)所述页面迁移包含三个基本步骤:首先移除物理页面和与之对应的机器页面的映射,以保证迁移过程中页面内容不会发生变化;然后把原页面的内容拷贝到具有被请求的颜色的页面上;最后重新建立映射,将所有对物理页面的修改执行到新的机器页面上。
10.如权利要求9所述的方法,其特征在于:通过加入从机器页面到影子页表项的逆映射机制,降低页面迁移的解除映射和重新映射过程中扫描影子页表的开销。
【文档编号】G06F9/48GK103885815SQ201410110698
【公开日】2014年6月25日 申请日期:2014年3月24日 优先权日:2014年3月24日
【发明者】汪小林, 胡夏蒙, 李晔晨, 罗英伟, 陈昊罡 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1