一种flush缓存的方法及装置制造方法及图纸

技术编号:11753752 阅读:255 留言:0更新日期:2015-07-22 02:13
本发明专利技术提供了一种刷新flush缓存的方法及装置,该方法包括:S1:预设待处理的缓存回写的读写流pending flush IO数量的临界值;S2:判断pending flush IO数量是否小于等于所述pending flush IO数量的临界值,如果是,则产生缓存回写的读写流flush IO,否则,不产生flush IO。本发明专利技术提供的一种flush缓存的方法及装置,能够降低锁冲突和资源占用。

【技术实现步骤摘要】

本专利技术涉及存储
,尤其涉及一种flush缓存的方法及装置
技术介绍
存储系统通常采用cache(缓存)系统来缓存写10(读写流)。写1先写入写缓存,在合适的时机(例如:缓存不足或CPU空闲时)再将写缓存flush(刷新)到RAID (Redundant Arrays of Independent Disks,磁盘阵列)的 disk(磁盘)上,通过控制产生flush 10(缓存回写的读写流)可以提高拼条带效果,提高实际的1PS能力。现有技术中通过以下方法来产生flush 1:采用最大资源抢占策略来产生flush10,即有多少资源产生多少flush 1 ;或者,每个调度点产生固定数量的flush 10通过上述描述可见,现有技术中,在产生flush 1时,很难控制产生flush 1的力度,若产生flush 1的力度小,则下面disk的1吞吐能力可能没有用满;若产生flush1的力度太大,则下层会积累很多pending flush 10(待处理的缓存回写的读写流),导致资源冲突(例如1锁冲突)和资源浪费(例如读cache被提前释放,内存被占用)。
技术实现思路
本专利技术提供了一种flush缓存的方法及装置,能够降低锁冲突和资源占用。一方面,本专利技术提供了一种刷新flush缓存的方法,包括:S1:预设待处理的缓存回写的读写流pending flush 1数量的临界值;S2:判断pending flush 1数量是否小于等于所述pending flush 1数量的临界值,如果是,则产生缓存回写的读写流flush 10,否则,不产生flush 10进一步地,在所述S2之前还包括:获取pending flush 1 数量。另一方面,本专利技术提供了一种刷新flush缓存的装置,包括:存储单元,用于存储预设的待处理的缓存回写的读写流pending flush 1数量的临界值;判断单元,用于判断pending flush 1数量是否小于等于所述pending flush 1数量的临界值,如果是,则产生缓存回写的读写流flush 10,否则,不产生flush 10进一步地,所述装置还包括:获取单元,用于获取pending flush 1数量。通过本专利技术提供的一种flush缓存的方法及装置,使得进入RAID的1数量平滑,降低了锁冲突和资源占用,提高了存储系统的整体性能和平顺性。【附图说明】为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的一种flush缓存的方法流程图;图2是本专利技术实施例提供的一种flush缓存的装置结构示意图。【具体实施方式】为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例,基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例提供了一种flush缓存的方法,参见图1,包括:S1:预设pending flush 1数量的临界值;S2:判断pending flush 1数量是否小于等于所述pending flush 1数量的临界值,如果是,则产生flush 10,否则,不产生flush 10在所述S2之前包括:获取pending flush 1 数量。在一种可能的实现方式中,所述pending flush 1数量的临界值通过以下方法获得:Al:判断pending flush 1数量是否小于等于所述预设的pending flush 1数量的初始值,如果是,则产生缓存回写的读写数据流flush 10,否则,不产生flush 10;A2:如果检测到所述pending 1数量在预设时间段内持续上升,则减小所述pending flush 1数量的初始值,返回Al,如果检测到所述pending 1数量在预设时间段内持续下降,则增加所述pending flush 1数量的初始值,返回Al ;如果检测到所述pending 1数量收敛,则将所述pending flush 1数量的初始值作为所述pending flush1数量的临界值。在另一种可能的实现方式中,所述pending flush 1数量的临界值通过以下方法获得:B1:判断pending flush 1数量是否小于等于所述预设的pending flush 1数量的初始值,如果是,则产生缓存回写的读写数据流flush 10,否则,不产生flush 10;B2:检测所述pending 1数量在预设时间段内的增长率,如果所述增长率为正,则减小所述pending flush 1数量的初始值,返回BI,如果所述增长率为负,则增加所述pending 1数量的初始值,返回BI ;如果所述增长率为0,则将所述pending flush 1数量的初始值作为所述pending 1数量的临界值。再一种可能的实现方式中,所述pending flush 1数量的临界值通过以下方法获得:设定一个临界点经验值NO,系统运行一段时间后:若检查pending 1数量持续上升,则1压力已经超过临界点,可降低NO继续测试;若检查pending 1数持续下降,则1压力没有到达临界点,可增大NO继续测试;直到pending 1数值收敛为止,确定最终的pending flush 1数量的临界值。其中,pending flush 1数量的临界值可以通过动态自测过程来产生。本专利技术实施例还提供了一种flush缓存的装置,参见图2,包括:存储单元201,用于存储预设的pending flush 1数量的临界值;判断单元202,用于判断pending flush 1数量是否小于等于所述pending flush1数量的临界值,如果是,则产生flush 10,否则,不产生flush 10所述装置还包括:获取单元,用于获取pending flush 1数量。通过上述实施例提供的一种flush缓存的方法及装置,使得进入RAID的1数量平滑,降低了锁冲突和资源占用,提高了存储系统的整体性能和平顺性。上述设备内的各单元之间的信息交互、执行过程等内容,由于与本专利技术方法实施例基于同一构思,具体内容可参见本专利技术方法实施例中的叙述,此处不再赘述。需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。本领域普本文档来自技高网...
一种flush缓存的方法及装置

【技术保护点】
一种刷新flush缓存的方法,其特征在于,包括:S1:预设待处理的缓存回写的读写流pending flush IO数量的临界值;S2:判断pending flush IO数量是否小于等于所述pending flush IO数量的临界值,如果是,则产生缓存回写的读写流flush IO,否则,不产生flush IO。

【技术特征摘要】

【专利技术属性】
技术研发人员:王俊
申请(专利权)人:北京神州云科数据技术有限公司
类型:发明
国别省市:北京;11

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

1