一种缓存分区分配空闲页的方法及装置的制造方法

文档序号:9489393阅读:263来源:国知局
一种缓存分区分配空闲页的方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机存储技术领域,特别是涉及一种缓存分区分配空闲页的方法及
目.ο
【背景技术】
[0002]随着数字化时代的到来,在人们的日常生活和科学研究中,越来越多的传统业务开始数字化、网络化,促使数据爆炸式增长,存储系统在整个业务处理系统中的地位也愈发重要,然而源源不断的数据流导致存储系统产生严重的I/O瓶颈问题。
[0003]计算机系统的性能主要由处理子系统性能和I/O子系统的性能两部分决定。其中CPU的处理速度始终保持了高速的增长,而I/O子系统其存储容量虽然增长较快,但其处理速度的增长远跟不上CPU速度的增长。为解决上述问题,现代计算机系统中,从寄存器、L1/L2高速缓存、内存、闪存,到磁盘/光盘/存储网络,各级存储器硬件组成了一个金字塔结构,越是底层存储容量越大,访问速度也越慢。在操作系统层面通过缓存系统来对金字塔结构的存储硬件进行支持,但由于缓存容量有限,在系统中有大量10情况下,当关键业务的10到来时,难以再获得缓存,关键业务无法得到保障。为解决该问题,存储领域产生了缓存分区的概念。
[0004]开源的Linux操作系统中,将整个系统的缓存看成一个缓存分区,当系统的缓存不足时,通过页替换算法和脏页刷写算法,将缓存中的内容写到磁盘,从而获得一些空闲页,供新的10请求使用。但是页替换算法和脏页刷写算法会显著增加10的延迟,这对于关键业务是难以容忍的。
[0005]因此,提供一种缓存分区分配空闲页的方法及装置,以保证关键业务的流畅是非常有必要的。

【发明内容】

[0006]本发明的目的是提供一种缓存分区分配空闲页的方法及装置,目的在于解决现有技术中关键业务无法得到保障的问题。
[0007]为解决上述技术问题,本发明提供一种缓存分区分配空闲页的方法,包括:
[0008]接收缓存分配请求;
[0009]判断当前缓存分区中的空闲页是否超过第一预设阈值;
[0010]当所述当前缓存分区中的空闲页未超过所述第一预设阈值时,判断所述当前缓存分区中的脏页比例是否超过第二预设阈值;
[0011]当所述当前缓存分区中的脏页比例超过第二预设阈值时,从预先设定优先级的各个缓存分区中查找优先级小于所述当前缓存分区的空闲缓存分区;
[0012]借调所述空闲缓存分区的空闲页。
[0013]可选地,当所述当前缓存分区中的空闲页超过所述第一预设阈值时,直接从所述当前缓存分区中分配空闲缓存页。
[0014]可选地,当所述当前缓存分区中的脏页比例未超过所述第二预设阈值时,触发页替换算法;
[0015]判断所述当前缓存分区的空闲页是否超过所述第一预设阈值;
[0016]如果是,则从所述当前缓存分区中分配空闲缓存页;如果否,则触发脏页刷写算法以及页替换算法,直到判断所述当前缓存分区的空闲页超过所述第一预设阈值为止。
[0017]可选地,所述从预先设定优先级的各个缓存分区中查找优先级小于所述当前缓存分区的空闲缓存分区包括:
[0018]从优先级最低的缓存分区依次查找优先级小于所述当前缓存分区的缓存分区,直到查找到的缓存分区的空闲页大于第三预设阈值为止,将查找到的缓存分区作为空闲缓存分区。
[0019]可选地,所述借调所述空闲缓存分区的空闲页包括:
[0020]判断借调的空闲页是否超过第四预设阈值;
[0021]如果否,则返回继续从预先设定优先级的各个缓存分区中查找优先级小于所述当前缓存分区的空闲缓存分区,直到借调的空闲页超过所述第四预设阈值为止。
[0022]可选地,在所述借调所述空闲缓存分区的空闲页之后还包括:
[0023]当检测到所述当前缓存分区中的空闲页超过第五预设阈值时,将借调的空闲页还给所述空闲缓存分区。
[0024]可选地,所述当检测到所述当前缓存分区中的空闲页超过第五预设阈值时,将借调的空闲页还给所述空闲缓存分区包括:
[0025]当检测到所述当前缓存分区中的空闲页超过所述第五预设阈值时,按照预先设定的优先级依次查找借调的空闲页,优先归还高优先级缓存分区的空闲页。
[0026]本发明还提供了一种缓存分区分配空闲页的装置,包括:
[0027]接收模块,用于接收缓存分配请求;
[0028]第一判断模块,用于判断当前缓存分区中的空闲页是否超过第一预设阈值;
[0029]第二判断模块,用于当所述当前缓存分区中的空闲页未超过所述第一预设阈值时,判断所述当前缓存分区中的脏页比例是否超过第二预设阈值;
[0030]查找模块,用于当所述当前缓存分区中的脏页比例超过第二预设阈值时,从预先设定优先级的各个缓存分区中查找优先级小于所述当前缓存分区的空闲缓存分区;
[0031]借调模块,用于借调所述空闲缓存分区的空闲页。
[0032]可选地,还包括:
[0033]释放模块,用于在借调所述空闲缓存分区的空闲页之后,当检测到所述当前缓存分区中的空闲页超过第五预设阈值时,将借调的空闲页还给所述空闲缓存分区。
[0034]本发明所提供的缓存分区分配空闲页的方法及装置,预先根据缓存分区处理业务的关键与否为缓存分区指定优先级,在接收缓存分配请求后,判断当前缓存分区的空闲页以及脏页比例,当其缓存分区空闲页不足且脏页超过一定比例时,从优先级小于当前缓存分区的分区中借调空闲页。可见,本发明所提供的缓存分区分配空闲页的方法及装置,能够优先保证高优先级业务的缓存需求,从而保障了关键业务的流畅。
【附图说明】
[0035]图1为本发明所提供的缓存分区分配空闲页的方法的一种【具体实施方式】的流程图;
[0036]图2为本发明所提供的缓存分区分配空闲页的方法的另一种【具体实施方式】的流程图;
[0037]图3为本发明所提供的缓存分区分配空闲页的方法的又一种【具体实施方式】的流程图;
[0038]图4为本发明所提供的缓存分区分配空闲页的方法中对缓存分区页释放的流程图;
[0039]图5为本发明所提供的缓存分区分配空闲页的装置的一种【具体实施方式】的结构框图。
【具体实施方式】
[0040]为了使本技术领域的人员更好地理解本发明方案,下面结合附图和【具体实施方式】对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0041]本发明所提供的缓存分区分配空闲页的方法的一种【具体实施方式】的流程图如图1所述,该方法包括:
[0042]步骤S101:接收缓存分配请求;
[0043]步骤S102:判断当前缓存分区中的空闲页是否超过第一预设阈值;
[0044]步骤S103:当所述当前缓存分区中的空闲页未超过所述第一预设阈值时,判断所述当前缓存分区中的脏页比例是否超过第二预设阈值;
[0045]步骤S104:当所述当前缓存分区中的脏页比例超过第二预设阈值时,从预先设定优先级的各个缓存分区中查找优先级小于所述当前缓存分区的空闲缓存分区;
[0046]步骤S105:借调所述空闲缓存分区的空闲页。
[0047]本发明所提供的缓存分区分配空闲页的方法,预先根据缓存分区处理业务的关键与否为缓存分区指定优先级,在接收缓存分配请求后,判断当前缓存分区的空闲页以及脏页比例,当其缓存分区空闲页不足且脏页超过一定比例时,从优先级小于当前缓存分区的分区中借调空闲页。可见,本发明所提供的缓存分区分配空闲页的方法,能够优先保证高优先级业务的缓存需求,从而保障了关键业务的流畅。
[0048]本发明所提供的缓存分区分配空闲页的方法的另一种【具体实施方式】的流程图如图2所示,该方法包括:
[0049]步骤S201:接收缓存分配请求;
[0050]步骤S202:判断当前缓存分区中的空闲页是否超过第一预设阈值;如果是,则跳转到步骤S207 ;如果否,则继续执行;
[0051]步骤S203:判断当前缓存分区中的脏页比例是否超过第二预设阈值;如果否,则跳转到步骤S206 ;如果是,则继续执行;
[0052]步骤S204:从预先设定优先级的各个缓存分区中查找优先级小于所述当前缓存分区的空闲缓存分区;
[0053]具体地,可以从优先级最低的缓存分区依次查找优先级小于所述当前缓存分区的缓存分区,直到查找到的缓存分区的空闲页大于第三预设阈值为止,将查找到的缓存分区作为空闲缓存分区。
[0054]步骤S205:借调所述空闲缓存分区的空闲页,进入步骤S207 ;
[0055]进一步地,该步骤可以通过下述步骤来实现:
[0056]判断借调的空闲页是否超过第四预设阈值;
[0057]如果否,则返回继续从预先设定优先级的各个缓存分区中查找优先级小于所述当前缓存分区的空闲缓存分区,直到借调的空闲页超过第四预设阈值为止。
[0058]步骤S206:触发页替换算法以及脏页刷写算法;直到判断当前缓存分区的缓存页超过第一预设阈值为止,进入步骤S207 ;
[0059]步骤S207:从分区中分配空闲页,减少分区空闲页计数;
[0060]步骤S208:结束流程。
[0061]本实施例对当前缓存分区中的空闲页超过第一预设阈值,以及当前缓存分区中的脏页比例未超过第二预设阈值的情况也进行了进一步限定,使得方案更加完整。
[0062]本发明所提供的缓存分区分配空闲页的方法的又一种【具体实施方式】的流程图如图3所示,该方法包括:
[0063]步骤S301:接收缓存分配请求;
[0064]步骤S302:判断当前缓存分区中的空闲页是否超过第一预设阈值;如果是,则跳转到步骤S311 ;如果否,则继续执行;
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1