一种缓存分区容量调整的方法、装置及存储介质与流程

文档序号:16971908发布日期:2019-02-26 18:37阅读:149来源:国知局
一种缓存分区容量调整的方法、装置及存储介质与流程

本申请涉及计算机存储技术领域,具体涉及一种缓存分区容量调整的方法。



背景技术:

云计算时代的到来,促使数据访问、存储呈爆炸式增长。存储系统在整个业务处理系统中的地位也愈发重要,快速增长的数据流访问量导致存储系统产生严重的数据读写的访问请求(input/output,i/o)的瓶颈问题。在计算机系统中为了解决高速中央处理器(centralprocessingunit,cpu)数据处理能力和存储系统i/o访问速度慢的矛盾,通常使用缓存技术。

缓存分区技术是把缓存空间划分为16、32、64等不同数量的缓存分区。每个分区的资源访问独立,互不干扰,在很大程度上提高了i/o访问性能。但是,不同缓存分区的i/o访问请求量存在区别,为每一个缓存分区分配固定的缓存空间会导致部分缓存分区i/0访问请求量大,缓存空间被填满,i/0访问速度慢,部分缓存分区i/0访问请求量小,缓存空间大量闲置,浪费缓存资源。



技术实现要素:

本申请实施例提供一种缓存分区容量调整的方法,使得根据缓存分区当前的访问请求量分配缓存空间资源,提高缓存性能。

为达到上述目的,本申请实施例提供如下技术方案:

本申请第一方面提供一种缓存分区容量调整的方法,可以包括:监控第一缓存分区的闲置缓存空间。判断闲置缓存空间是否大于预设值。若大于预设值,则释放第一缓存分区的闲置缓存空间的一部分,被释放的一部分闲置缓存空间用于分配给第二缓存分区。

可选地,结合上述第一方面,在第一种可能的实现方式中,在监控第一缓存分区的闲置缓存空间之前,该方法还可以包括:监控第一缓存分区的访问请求状态。当第一缓存分区上有访问请求时,为第一缓存分区分配缓存空间。

可选地,结合上述第一方面第一种可能的实现方式,在第二种可能的实现方式中,在监控第一缓存分区的访问请求状态之前,该方法还可以包括:根据存储池的数量确定缓存分区的数量,缓存分区可以包括第一缓存分区和第二缓存分区。

可选地,结合上述第一方面第二种可能的实现方式,在第三种可能的实现方式中,在根据存储池的数量确定缓存分区的数量之后,该方法还可以包括:定期查询存储池的数量。若存储池的数量被更新,则根据更新后的存储池的数量确定缓存分区的数量。

可选地,结合上述第一方面第二种可能的实现方式,在第四种可能的实现方式中,在根据存储池的数量确定缓存分区的数量之前,该方法还可以包括:为缓存分配容量,缓存为缓存分区的集合,缓存分区可以包括静态缓存分区和动态缓存分区,动态缓存分区的总容量为缓存的容量减去静态缓存分区的总容量。相应的,第一缓存分区为动态缓存分区。

本申请第二方面提供一种缓存分区容量调整的装置,该缓存分区容量调整的装置具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。

本申请第三方面提供一种缓存分区容量调整的装置,该装置可以包括:处理器和存储器,存储器中存储有程序指令,处理器用于执行存储器中存储的程序指令,执行如上述第一方面或第一方面任意一种可能实现方式的缓存分区容量调整的方法。

本申请第四方面提供一种计算机可读存储介质,当指令在计算机装置上运行时,使得计算机装置执行如上述第一方面或第一方面任意一种可能实现方式的缓存分区容量调整的方法。

本申请第五方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述第一方面或第一方面任意一种可能实现方式的缓存分区容量调整的方法。

本申请实施例通过监控第一缓存分区的闲置缓存空间,并将第一缓存分区的闲置缓存空间与预设值进行比较,若大于预设值,则释放第一缓存分区的部分闲置缓存空间,释放的第一缓存分区的闲置缓存空间可以被分配给第二缓存分区,由此可以动态调整缓存分区的容量。根据缓存分区当前的访问请求量分配缓存空间资源,提高缓存性能。

附图说明

图1为本申请实施例中缓存分区容量调整方法的一个实施例示意图;

图2为本申请实施例中缓存分区容量调整方法的另一个实施例示意图;

图3为本申请实施例中缓存分区容量调整方法的另一个实施例示意图;

图4为本申请实施例中缓存分区容量调整方法的另一个实施例示意图;

图5为本申请实施例中缓存分区容量调整装置的一个实施例示意图;

图6为本申请实施例中缓存分区容量调整装置的硬件结构的一个实施例示意图。

具体实施方式

下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

本申请实施例提供一种缓存分区容量调整的方法、装置及存储介质,可以动态调整缓存分区的容量,根据缓存分区当前的访问请求量分配缓存空间资源,提高缓存性能。以下分别进行详细说明。

本申请中字符“/”,一般表示前后关联对象是一种“或”的关系。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或装置不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或装置固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。本申请中所出现的模块的划分,是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请方案的目的。

图1为本申请实施例中缓存分区容量调整方法的一个实施例示意图。

如图1所示,本申请实施例提供的缓存分区容量调整方法的一实施例包括:

101、监控第一缓存分区的闲置缓存空间。

启动并调用监控进程,监控第一缓存分区的闲置缓存空间。当然,监控第一缓存分区的闲置缓存空间的方式并不限于启动并调用监控进程的方式,其他可以监控第一缓存分区的闲置缓存空间的方式都可以,本申请实施例对此并不做具体限定。

102、判断闲置缓存空间是否大于预设值。

预设值可以按照实际应用过程的需求进行设定,比如,预设值可以设为20%,即闲置缓存空间占第一缓存分区总空间的20%。

103、若大于预设值,则释放第一缓存分区的闲置缓存空间的一部分。

被释放的一部分闲置缓存空间用于分配给第二缓存分区。比如,若设定预设值为20%,若监控到第一缓存分区的闲置缓存空间占比达到第一缓存分区总空间的20%,则释放第一缓存分区的闲置缓存空间的一部分,比如,可以释放第一缓存分区的闲置缓存空间的10%,第二缓存分区可以申请使用这部分被释放的第一缓存分区的闲置缓存空间。当然可以释放第一缓存分区的闲置缓存空间的10%只是为了举例,可以按照实际需求设定释放第一缓存的闲置缓存空间的一部分的具体取值。

本实施例通过监控第一缓存分区的闲置缓存空间,并将第一缓存分区的闲置缓存空间与预设值进行比较,若大于预设值,则释放第一缓存分区的部分闲置缓存空间,释放的第一缓存分区的闲置缓存空间可以被分配给第二缓存分区,由此可以动态调整缓存分区的容量。根据缓存分区当前的访问请求量分配缓存空间资源,提高缓存性能。

图2为本申请实施例中缓存分区容量调整方法的另一个实施例示意图。

如图2所示,本申请实施例提供的缓存分区容量调整方法的另一实施例包括:

201、监控第一缓存分区的访问请求状态。

启动并调用监控进程,监控第一缓存分区的访问请求状态。当然,监控第一缓存分区的访问请求状态的方式并不限于启动并调用监控进程的方式,其他可以监控第一缓存分区的访问请求状态的方式都可以,本申请实施例对此并不做具体限定。

当第一缓存分区上有访问请求时,为第一缓存分区分配缓存空间。若此时第一缓存分区上没有访问请求时,则不为第一缓存分区分配缓存空间。

202、监控第一缓存分区的闲置缓存空间。

203、判断闲置缓存空间是否大于预设值。

204、若大于预设值,则释放第一缓存分区的闲置缓存空间的一部分。

本申请实施例中的步骤202至204可以参阅图1对应的实施例中的步骤101至103进行理解,此处不再重复赘述。

本实施例通过监控第一缓存分区的访问请求状态,当第一缓存分区上没有访问请求时,不为第一缓存分区分配缓存空间,当监控到第一缓存分区上有访问请求时,才为第一缓存分区分配缓存空间,提升缓存空间的有效使用空间。

图3为本申请实施例中缓存分区容量调整方法的另一个实施例示意图。

如图3所示,本申请实施例提供的缓存分区容量调整方法的另一实施例包括:

301、根据存储池的数量确定缓存分区的数量。

缓存分区包括第一缓存分区和第二缓存分区。确定被映射使用的虚拟卷,将被映射使用的虚拟卷所属的存储池的个数相加可以确定存储池的数量,根据存储池的数量确定有效的缓存分区的数量。根据缓存分区的数量设置所有缓存分区的容量阈值,比如,可以按照实际需求设置缓存分区的容量阈值为60m或600m或6g等其他数值。

302、定期查询存储池的数量。

若存储池的数量被更新,则根据更新后的存储池的数量确定缓存分区的数量。比如,当添加或删除虚拟卷时,可能导致存储池的数量发生变化,如果存储池的数量发生了变化,根据变化后的存储池的数量确定缓存分区的数量。

303、监控第一缓存分区的访问请求状态。

304、监控第一缓存分区的闲置缓存空间。

305、判断闲置缓存空间是否大于预设值。

306、若大于预设值,则释放第一缓存分区的闲置缓存空间的一部分。

本申请实施例中的步骤303至306可以参阅图2对应的实施例中的步骤201至204进行理解,此处不再重复赘述。

本申请实施例根据存储池的数量确定缓存分区的数量,并且定期查询存储池的数量,更新缓存分区的数量,增加方案实现的灵活性。

图4为本申请实施例中缓存分区容量调整方法的另一个实施例示意图。

如图4所示,本申请实施例提供的缓存分区容量调整方法的另一实施例包括:

401、为缓存分配容量。

缓存为缓存分区的集合,缓存分区包括静态缓存分区和动态缓存分区,动态缓存分区的总容量为缓存的容量减去静态缓存分区的总容量。

402、监控第一缓存分区的访问请求状态。

第一缓存分区为动态缓存分区。

403、监控第一缓存分区的闲置缓存空间。

404、判断闲置缓存空间是否大于预设值。

405、若大于预设值,则释放第一缓存分区的闲置缓存空间的一部分。

释放第一缓存分区的闲置缓存空间的一部分,第一缓存分区为动态缓存分区,也就是说,静态缓存分区的闲置缓存空间即使大于预设值,也无需释放,

本申请实施例中的步骤402至404可以参阅图2对应的实施例中的201至203进行理解,此处不再重复赘述。

本申请实施例通过设置静态缓存分区,使得静态缓存分区独立占用部分缓存空间资源,不受动态缓存分区的影响,可以满足关键业务的需求。

本申请实施例可以根据上述方法示例对缓存分区容量调整装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

比如,以采用集成的方式划分各个功能模块的情况下,图5示出了一种缓存分区容量调整装置的一个实施例。

如图5所示,该缓存分区容量调整装置可以包括:

监控单元501,用于监控第一缓存分区的闲置缓存空间。

判断单元502,用于判断监控单元501监控的闲置缓存空间是否大于预设值。

释放单元503,用于若判断单元502判断闲置缓存空间大于预设值,则释放第一缓存分区的闲置缓存空间的一部分,被释放的一部分闲置缓存空间用于分配给第二缓存分区。

可选地,该装置还可以包括分配单元504,

监控单元501,还用于在监控第一缓存分区的闲置缓存空间之前监控第一缓存分区的访问请求状态。

分配单元504,用于当监控单元501监控第一缓存分区上有访问请求时,为第一缓存分区分配缓存空间。

可选地,该装置还可以包括确定单元505,用于在监控单元501监控第一缓存分区的访问请求状态之前,根据存储池的数量确定缓存分区的数量,缓存分区可以包括第一缓存分区和第二缓存分区。

可选地,该装置还可以包括查询单元506,

查询单元506,用于在确定单元505根据存储池的数量确定缓存分区的数量之后,定期查询存储池的数量。

确定单元505,还用于若查询单元506查询存储池的数量被更新,则根据更新后的存储池的数量确定缓存分区的数量。

可选地,分配单元504还用于在确定单元505根据存储池的数量确定缓存分区的数量之前,为缓存分配容量,缓存为缓存分区的集合,缓存分区可以包括静态缓存分区和动态缓存分区,动态缓存分区的总容量为缓存的容量减去静态缓存分区的总容量。相应的,第一缓存分区为动态缓存分区。

图6是本申请实施例提供的缓存分区容量调整装置60的结构示意图。所述缓存分区容量调整装置60包括处理器601、存储器604和输入输出(i/o)接口603,存储器604可以包括只读存储器和随机存取存储器,并向处理器601提供操作指令和数据。存储器604的一部分还可以包括非易失性随机存取存储器(nvram)。

在一些实施方式中,存储器604存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:

在本申请实施例中,在缓存分区容量调整的过程中,通过调用存储器604存储的操作指令(该操作指令可存储在操作系统中),

监控第一缓存分区的闲置缓存空间。

判断闲置缓存空间是否大于预设值。

若大于预设值,则释放第一缓存分区的闲置缓存空间的一部分,被释放的一部分闲置缓存空间用于分配给第二缓存分区。

处理器601控制缓存分区容量调整60的操作,处理器601还可以称为cpu。存储器604可以包括只读存储器和随机存取存储器,并向处理器601提供指令和数据。存储器604的一部分还可以包括非易失性随机存取存储器(nvram)。具体的应用中,缓存分区容量调整装置60的各个组件通过总线系统602耦合在一起,其中总线系统602除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统602。

上述本申请实施例揭示的方法可以应用于处理器601中,或者由处理器601实现。处理器601可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器601可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器604,处理器601读取存储器604中的信息,结合其硬件完成上述方法的步骤。

可选地,处理器601用于:

监控第一缓存分区的访问请求状态,

当第一缓存分区上有访问请求时,为第一缓存分区分配缓存空间。

可选地,处理器601用于:

根据存储池的数量确定缓存分区的数量,所述缓存分区包括第一缓存分区和所述第二缓存分区。

可选地,处理器601用于:

定期查询存储池的数量,若存储池的数量被更新,则根据更新后的存储池的数量确定缓存分区的数量。

可选地,处理器601用于:

为缓存分配容量,缓存为所述缓存分区的集合,缓存分区包括静态缓存分区和动态缓存分区,动态缓存分区的总容量为缓存的容量减去静态缓存分区的总容量。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专属计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:rom、ram、磁盘或光盘等。

以上对本申请实施例所提供的缓存分区容量调整的方法、缓存分区容量调整装置、以及计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1