当前位置: 首页 > 专利查询>浙江大学专利>正文

基于虚拟化平台的磁盘页面换入的方法技术

技术编号:3984472 阅读:344 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于虚拟化平台的磁盘页面换入的方法,包括如下步骤:(1)建立跟踪缓存,用于跟踪各个进程的页面换入操作,跟踪缓存中包括了若干项,每个项中记录一个进程最近一次页面换入操作时的信息;(2)跟踪每个客户进程的页面换入操作,当发生缺页而中断时,根据发生中断的进程的标识符在跟踪缓存中找到匹配的项;(3)根据得到的项,计算当前页面换入需要预取页面的个数。本发明专利技术所实现的动态页面换入计算方法通过基于客户机内存状态的页面交换机制来提高每个客户机内存在交换分区中的页面连续性,能够动态地改变每次调页时的页面换入数,从而在保证磁盘交换缓存命中的前提下充分减少磁盘IO访问次数,提高系统效率。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及一种基于虚拟化平台上的支持 Host-Swapping机制的磁盘页面换入方法。
技术介绍
目前在内存的管理方面的研究方案数不胜数,但是这些研究基本上在五年之前就 中断了。近年来,由于受到内存模型的复杂性和缺少硬件技术发展的推动,对于内存管理的 关注进入低潮期。即使是先前的那些研究,对于虚拟化平台的内存管理,大部分的都集中于 分配策略和页面替换策略上,但是,对于虚拟机的页面替换引起的输入输出(10)操作所牵 涉的设备模型的影响却涉及较少。在虚拟化中,物理资源通常有一个定语称为宿主(Host),而虚拟出来的资源通常 有一个定语称为客户(Guest)。本质上,虚拟化就是由位于下层的软件模块,通过向上一层 软件模块提供一个与它原先所期待的运行环境完全一致的接口的方法,抽象出一个虚拟的 软件或硬件接口,使得上层软件可以直接运行在虚拟的环境上。KVM(Kernel-based Virtual Machine,基于内核的虚拟机)是一个新兴的基于Linux内核的虚拟机管理软件,它采用的 是基于Intel硬件虚拟技术的虚拟化方法,并结合模拟器Qemu来完成设备虚拟化(Device Model)。对于Linux而言,KVM是一个普通进程,因此其管理很简单,提供的虚拟化环境性 能很高,而且对现有系统影响很小从而扩展性很强。对于本文实现的技术而言,KVM最大的 优点在于它支持内存超额分配和Host-swapping机制。原来的虚拟机内存页面替换机制中,页面回收过程如下虚拟机本身发起页面回 收,其页面回收算法选中回收页框,然后向通用10层提出10操作请求。通用10层的磁盘 驱动接收请求并发出相应的10指令,这些10指令被硬件捕捉后引发异常退出虚拟机环境, 异常原因会被VMM检测到。接下来,检测到的异常原因与10指令被递交给用户态的守护进 程,它经过设备模型层(Device ModelLayer,DML)去调用本地磁盘设备驱动,从而完成内存 页面的换出(Swap out)操作;如图1虚线过程所示。这种Host-swapping机制的优点是虚 拟机的内存页面交换路径大大缩短,同时不必要的特权级切换得以避免,系统效率得以提 高提高,其过程如图-1实线所示。在引入了 Host-Swapping的VMM上如果支持了多个客户机同时运行,不同的客户 机可能映射到物理连续页面。原来的页面换出策略中会尝试将物理连续页一起换出;但是 在引入了 Host-Swapping的虚拟化环境中,这会让属于不同虚拟机的页框被连续地存放在 交换分区中。为了利用磁盘访问的空间局部性来提供优化,磁盘页面换入机制得以提出。 Linux操作系统设置了一个可手动调节的磁盘页面换入大小,默认为一次交换分区读操作 尝试8个连续页面。但是在引入了 Host-Swapping的VMM上,由于单个虚拟机页面的“不连 续性”,调大页面换入范围不会有什么效果。这种不连续性导致磁盘页面换入命中率下降、 10次数增加以及磁盘寻道时间增加。如果10操作过多,则可能使得系统的运行时间在磁盘 操作上达到饱和。内存Host-swapping机制通过大大缩短虚拟机的内存页面交换路径和避免了不 必要的特权级切换来提高虚拟机的性能,但是这种机制同时也使得磁盘页面换入命中率下 降、10次数增加并且磁盘寻道时间增加。
技术实现思路
本专利技术提供了一种智能管理磁盘页面换入时页面数的方法,以帮助换页机制动态 地改变每次调页时的换入页面数,在保证磁盘交换缓存命中的前提下充分减少磁盘10访 问次数,提高系统效率。一种,包括如下步骤(1)建立跟踪缓存,用于跟踪各个进程的页面换入操作,跟踪缓存为一个环形缓冲 区,其中包括了若干项(Entry),如图2所示,每个项中记录一个进程最近一次页面换入操 作时的信息,包括PID表示该进程的进程ID号,即指明了该项记录的页面换入操作发生在进程ID号 为PID的进程中。Priority表示项的有效期;Base和End分别代表该进程最近一次页面换入操作时换入的页面在交换分区上 页槽的起始和终止偏移值;该进程最近一次页面换入操作时换入的页面数则由Pages来表示。在一个项的有效期内,也就是priority还不为0的时候,也即这个项还没有被替 换以前,一个项描述的信息总是对应同一个进程,而这个项的信息记录的是它描述的进程 的最近一次页面换入操作时的信息,(或者更确切地说,是在该进程的最后一次页面换入 操作完成以后,把该操作的信息,比如是从交换空间上的什么位置读取的,读了几个页记录 在该项中)以便当对该进程发生下一次页面换入操作需要换页时,以该信息为参考计算出 这个时候发生的页面换入操作需要预读多少个页面)。这中间会混淆的可能是对进程的页 面换入操作的不清楚,也就是说,系统中是有很多进程在同时运行的,从全局的角度来看, 一次页面换入操作只会对应一个进程,当页面操作执行完毕以后,就在对应于该进程的项 中对这次操作的信息进行更新,也即一个项只对应一个进程在最近一次页面换入操作的信 肩、o(2)跟踪每个客户(Guest)进程的页面换入(swap in)操作,当发生缺页而中断 时,根据发生中断的进程的标识符在跟踪缓存中找到匹配的项。跟踪缓存中所有的项在系统启动过程中已经正确初始化,把相关字段清零。以当 前发生缺页中断的进程/Guest的进程ID号作为参数,去匹配跟踪缓存中的每个项的PID 字段。此函数采用线性扫描方式,这是基于对跟踪缓冲的公平访问原则,对于缓冲区项数不 是很大的情况,该方法简单易维护且性能可接受。扫描首先从上次Swap in选中的项开始;以匹配PID为优先级其最高;次优先级为没有找到匹配PID的项从而选择第一个扫描到的空闲项以记录此次 的换入操作,即记录一个新的项;被扫描的项如果不满是上述两种情况,则递减此项的有效期Priority,当某一项4的有效期Priority为0时,则清除该项。在一轮扫描之后如果没有选择到满足条件的项 则此返回NULL,随后的页面换入计算函数将返回一个默认值。显然,每个项最多可以有 Priority次机会不被替换。(3)根据得到的项,计算当前页面换入需要预取页面的个数。将当前页面换入操作所涉及的目标页面在交换分区上的页槽的位置记为Target。 目标页面与匹配的项中记录的进程的最近一次页面换入操作时换入的页面的距离 Distance 取值为 Target-Base 禾口 Target-End 中较小者。为便于描述,“匹配的项中记录的进程的最近一次页面换入操作”简称“上一次页 面换入操作”其中Base和End分别代表在匹配的项中,上一次页面换入操作换入的页面在交换 分区上页槽的起始和终止偏移值;如果Distance小于用户设定的中间值(MDistance),则表明空间局部性高,因此 增加换入的页面数。页面每次增加的单位是8,当换入的页面数达到最大值MPF时,将不再 增加。MPF的值是32。如果Distance不小于MDistance,页面换入操作时换入的页面数将直接取系统设 定的默认最小值。此步骤中本专利技术引入了空间局部性的概念,如果空间局部性高,则一次换入更多 的页面,如果空间局部性低,则按照最小页面换入执行。由于本文档来自技高网
...

【技术保护点】
一种基于虚拟化平台的磁盘页面换入的方法,其特征在于,包括如下步骤:(1)建立跟踪缓存,用于跟踪各个进程的页面换入操作,跟踪缓存中包括了若干项,每个项中记录一个进程最近一次页面换入操作时的信息,包括:该进程的进程ID号;项的有效期;该进程最近一次页面换入操作时换入的页面在交换分区上页槽的起始和终止偏移值;该进程最近一次页面换入操作时换入的页面数;(2)跟踪每个客户进程的页面换入操作,当发生缺页而中断时,根据发生中断的进程的标识符在跟踪缓存中找到匹配的项;(3)根据得到的项,计算当前页面换入需要预取页面的个数。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈文智陈小琴陈慧君黄炜
申请(专利权)人:浙江大学
类型:发明
国别省市:86[中国|杭州]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1