本发明专利技术提供一种用于替换缓存模块中数据的方法及装置,方法包括:接收新数据块或向缓存模块中写入新数据块的信息;在缓存模块的空间被占满的情况下,根据配额在所述缓存模块中选择一个缓存块,作为预备替换块;所述缓存块为存储在所述缓存模块中的数据块;用所述新数据块替换所述预备替换块。通过根据配额在所述缓存模块中选择一个缓存块,作为预备替换块,限制了镜像或虚拟机在缓存模块中的缓存块的数量,避免了较活跃的镜像或虚拟机较大量地占用Cache模块空间,从而解决了活跃程度不同的镜像或虚拟机的缓存空间不均衡的问题。
【技术实现步骤摘要】
本专利技术涉及云计算中的缓存管理技术,尤其涉及一种用于替换缓存模块中数据的方法及装置。
技术介绍
桌面云是将个人计算机桌面环境通过云计算模式从物理机分离出来,成为一种可以对外提供桌面的服务。在使用一种虚拟化体系架构(Xen)虚拟化的桌面云系统中,Xen中的特权域(Domain O)虚拟出CPU、输入输出(Input and Output, 10)总线、存储等资源,供服务器上的Xen中的虚拟机域(Domain U)使用。目前很多优化软件都在Domain O中设计了针对Domain U的缓存(Cache)模块。该Cache模块用于缓存各个DomainU所使用镜像的热点数据,以减少各个Domain U使用远端存储上镜像的数据而产生的10对远端存储每秒输入输出量(Input and Output PerSecond, I0PS)的压力。但是,由于Cache模块的容量有限,相对于每个镜像动辄几十、上百GB容量甚至更多的数据来说容量很少,经常会出现新进入Cache模块的新数据把缓存在Cache模块中的老热点数据替换出去,造成各个DomainU在Cache模块中的命中率降低,严重影响了镜像或虚拟机的性能,从而严重影响了用户体验。针对各个Domain U在Cache模块中的命中率降低的问题,目前通常采用缓存替换算法对Cache模块中的缓存块进行预备替换排序。预备最先被替换的缓存块在Cache模块的管理模块接收到新数据块或要写入新数据块的信息后,用预备最先被替换的缓存块占用的缓存单元存储新数据块,预备最先被替换的缓存块被替换。如最近最久使用(LeastRecently Used, LRU)缓存替换算法对Cache模块内的数据块进行缓存管理。该LRU缓存替换算法能将最近最新访问的数据尽可能地保留在Cache模块中,而将最近最久未访问的数据替换出Cache模块,从而可提高热点数据在Cache模块中的缓存命中率,减少10响应时间,提闻用户体验I。但是,现有的缓存替换算法将所有对Cache的10访问行为一视同仁,以相同的策略管理所有的10访问事件,当多个镜像的进程并发运行时,各个进程竞争使用Cache空间,存储自己使用的数据。但各个进程的访存行为不同,有的进程更倾向于使用已经属于自己的Cache,有的进程则会抢夺其它进程使用的Cache,影响其他进程的执行。当一个或几个镜像相对比较活跃时,它们进行10访问读取的数据块可能会较大量地占用Cache空间,如根据LRU替换算法的特点,这会导致其它暂时相对不太活跃的镜像在Cache模块中的数据被大量替换出Cache模块。这样,镜像缓存在Cache模块中的数据块在经过一番替换后,留下来的大多是此镜像的热点数据,若某一段时间镜像不活跃时,如果因其它活跃的镜像的频繁10行为而导致此镜像的热点数据被替换出Cache,则会导致此镜像在缓存中的命中率严重下降,并增加了该镜像10响应时延,从而降低了镜像的10处理性能,影响了用户体验
技术实现思路
本专利技术实施例提供一种用于替换缓存模块中数据的方法及装置,用于解决活跃程度不同的镜像或虚拟机的缓存空间不均衡的问题。本专利技术实施例的第一个方面是提供一种用于替换缓存模块中数据的方法,包括接收新数据块或向缓存模块中写入新数据块的信息;在缓存模块的空间被占满的情况下,根据配额在所述缓存模块中选择一个缓存块,作为预备替换块;所述缓存块为存储在所述缓存模块中的数据块;用所述新数据块替换所述预备替换块。本专利技术实施例的另一个方面是提供一种用于替换缓存模块中数据的装置,包括数据接收模块,用于接收新数据块或向缓存模块中写入新数据块的信息;替换选择模块,用于在缓存模块的空间被占满的情况下,根据配额在所述缓存模块中选择一个缓存块,作为预备替换块;所述缓存块为存储在所述缓存模块中的数据块;替换模块,用于用所述新数据块替换所述预备替换块。本专利技术实施例提供的用于替换缓存模块中数据的方法及装置,通过根据配额在所述缓存模块中选择一个缓存块,作为预备替换块,限制了镜像或虚拟机在缓存模块中的缓存块的数量,避免了较活跃的镜像或虚拟机较大量地占用Cache模块空间,从而解决了活跃程度不同的镜像或虚拟机的缓存空间不均衡的问题。附图说明图1为本专利技术实施例提供的一种用于替换缓存模块中数据的方法的流程图;图2为本专利技术实施例提供的用于替换缓存模块中数据的方法中缓存队列的示意图;图3为本专利技术实施例提供的一种用于替换缓存模块中数据的装置的结构示意图;图4为本专利技术实施例提供的另一种用于替换缓存模块中数据的装置的结构及应用不意图;图5为本专利技术实施例提供的用于替换缓存模块中数据的装置的应用场景示意图;图6为本专利技术实施例提供的用于替换缓存模块中数据的装置的处理流程图。具体实施例方式图1为本专利技术实施例提供的一种用于替换缓存模块中数据的方法的流程图。如图1所示,该方法包括步骤11、接收新数据块或向缓存模块中写入新数据块的信息。例如缓存模块的管理模块接收某一镜像或虚拟机的新数据块,或者接收向缓存模块中写入新数据块的信息,获知有新数据块要写入缓存模块。根据该向缓存模块中写入新数据块的信息还可以获知即将写入缓存模块的新数据块来自哪个镜像或虚拟机。步骤12、在缓存模块的空间被占满的情况下,根据配额在该缓存模块中选择一个缓存块,作为预备替换块。其中,缓存块为存储在缓存模块中的数据块,即缓存模块中存储的数据块均称为缓存块。例如当上述新数据块所属的镜像或虚拟机的缓存块的数量达到最高配额H时,按照缓存替换算法,将该新数据块所属的镜像或虚拟机的缓存块中预备最先被替换的缓存块作为预备替换块;其中,最高配额H=NXb/I,N为缓存模块中的缓存单元的数量,该缓存单元为一个缓存块占用的空间,b>l,I为该缓存模块服务的镜像或虚拟机的数量。这种在缓存替换算法的基础上,通过限制镜像或虚拟机在缓存模块中的缓存块的数量,或者说限制镜像或虚拟机在缓存模块中占用的缓存单元的数量,避免了较活跃的镜像或虚拟机较大量地占用Cache模块空间,导致的其它镜像或虚拟机缓存的热点数据被替换出Cache模块,而产生的其他镜像或虚拟机性能下降的问题。当上述新数据块所属的镜像或虚拟机的缓存块的数量未达到最高配额H时,按照缓存替换算法,将配额范围内的镜像或虚拟机的缓存块中预备最先被替换的缓存块作为预备替换块;该配额范围内的镜像或虚拟机为占用缓存模块的缓存单元的数量大于最低配额L且小于最高配额H的镜像或虚拟机;其中,最高配额H=NXb/I同上述最高配额H,最低配额L=NXs/I,N同上述N,为缓存模块中的缓存单元的数量,缓存单元为一个缓存块占用的空间,b为配额比例放大系数,b>l,s为配额比例缩小系数,0〈s〈l,I为缓存模块服务的镜像或虚拟机的数量。这种在缓存替换算法的基础上,限制占用的缓存单元的数量小于最低配额的镜像或虚拟机的缓存块被替换出Cache模块,保证了不活跃镜像或虚拟机缓存的热点数据不被轻易地替换出Cache模块,有效地均衡了各镜像或虚拟机占用的缓存空间,保证了各镜像或虚拟机的性能。其中,缓存替换算法可为LRU缓存替换算法,可为最新最近使用(MostRecentlyUsed, MRU)缓存替换算法,也可为其他高效的缓存替换算法。对于LRU缓存替换算本文档来自技高网...
【技术保护点】
一种用于替换缓存模块中数据的方法,其特征在于,包括:接收新数据块或向缓存模块中写入新数据块的信息;在缓存模块的空间被占满的情况下,根据配额在所述缓存模块中选择一个缓存块,作为预备替换块;所述缓存块为存储在所述缓存模块中的数据块;用所述新数据块替换所述预备替换块。
【技术特征摘要】
【专利技术属性】
技术研发人员:李明君,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。