一种基于令牌桶算法的IOPS控制方法及装置制造方法及图纸

技术编号:17798328 阅读:25 留言:0更新日期:2018-04-25 21:50
本发明专利技术公开了一种基于令牌桶算法的IOPS控制方法,在Ceph存储集群卷IOPS控制过程中,通过本方案公开的细化时间粒度的令牌桶算法,可以抑制读写压力在IOPS限定值上下波动、读写调度时间过长等随机扰动因素对卷IOPS控制的影响,显著地降低实际IOPS波动幅度,从而提高Ceph存储集群中对卷IOPS控制的鲁棒性及控制精度;本发明专利技术还公开了一种基于令牌桶算法的IOPS控制装置、设备及计算机可读存储介质,同样可以实现上述技术效果。

【技术实现步骤摘要】
一种基于令牌桶算法的IOPS控制方法及装置
本专利技术涉及IOPS控制
,更具体地说,涉及一种基于令牌桶算法的IOPS控制方法、装置、设备及计算机可读存储介质。
技术介绍
目前,Ceph存储集群对卷的一种IOPS控制方法是基于令牌桶算法实现的。具体控制方法如下:IOPS令牌桶中的每一个令牌代表允许进行一次读写操作。当执行一次读写操作时,首先要去IOPS令牌桶中申请一支令牌,如果申请不到,本次读写便会被阻塞,直到获取到对应的令牌后,本次读写才会继续执行。如此,可以通过控制令牌桶的令牌数来控制IOPS。但是这种基于令牌桶算法的Ceph存储集群卷IOPS控制方法,在读写过程中随机扰动因素影响下,实际IOPS控制效果与预期值偏差较大,鲁棒性较差,不适用于实际生产环境。因此,如何降低在随机扰动因素下IOPS令牌桶中的令牌累积量,从而抑制扰动因素对实际IOPS控制的影响,是本领域技术人员需要解决的问题。
技术实现思路
本专利技术的目的在于提供一种基于令牌桶算法的IOPS控制方法、装置、设备及计算机可读存储介质,以降低在随机扰动因素下IOPS令牌桶中的令牌累积量,从而抑制扰动因素对实际IOPS控制的影响。为实现上述目的,本专利技术实施例提供了如下技术方案:一种基于令牌桶算法的IOPS控制方法,包括:确定每秒内IOPS令牌桶的时间粒度值;利用所述时间粒度值以及每秒的令牌添加最大值,确定每秒内的时间间隔值及每个时间间隔添加的令牌值;利用所述每秒的时间间隔值及每个时间间隔添加的令牌值,向所述IOPS令牌桶添加令牌,以在执行存储读写操作时向所述IOPS令牌桶申请令牌。其中,利用所述时间粒度值以及每秒的令牌添加最大值,确定每秒内的时间间隔值及每个时间间隔添加的令牌值,包括:利用所述时间粒度值N确定每秒内的时间间隔值1/N;根据所述时间粒度值N以及每秒的令牌添加最大值V,确定每个时间间隔添加的令牌值V/N。其中,本方案还包括:检测所述IOPS令牌桶内的令牌数是否大于最大令牌阈值;若是,则发出提示信息。其中,本方案还包括:确定所述IOPS令牌桶的IOPS最大上浮比率Ratio_MAX;Ratio_MAX=α/N;其中,α为令牌桶容纳系数,N为时间粒度值N;若所述IOPS最大上浮比率Ratio_MAX大于预定上浮比率阈值,则按照预定规则调整所述时间粒度值N。一种基于令牌桶算法的IOPS控制装置,包括:第一确定模块,用于确定每秒内IOPS令牌桶的时间粒度值;第二确定模块,用于利用所述时间粒度值以及每秒的令牌添加最大值,确定每秒内的时间间隔值及每个时间间隔添加的令牌值;令牌添加模块,用于利用所述每秒的时间间隔值及每个时间间隔添加的令牌值,向所述IOPS令牌桶添加令牌,以在执行存储读写操作时向所述IOPS令牌桶申请令牌。其中,所述第二确定模块包括:第一确定单元,用于利用所述时间粒度值N确定每秒内的时间间隔值1/N;第二确定单元,用于根据所述时间粒度值N以及每秒的令牌添加最大值V,确定每个时间间隔添加的令牌值V/N。其中,本方案还包括:检测模块,用于检测所述IOPS令牌桶内的令牌数是否大于最大令牌阈值;提示模块,用于所述IOPS令牌桶内的令牌数大于最大令牌阈值时,发出提示信息。其中,本方案还包括:最大上浮比率确定模块,用于确定所述IOPS令牌桶的IOPS最大上浮比率Ratio_MAX;Ratio_MAX=α/N;其中,α为令牌桶容纳系数,N为时间粒度值N;时间粒度值调整模块,用于若所述IOPS最大上浮比率Ratio_MAX大于预定上浮比率阈值,则按照预定规则调整所述时间粒度值N。一种基于令牌桶算法的IOPS控制设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述IOPS控制方法的步骤。一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述IOPS控制方法的步骤。通过以上方案可知,本专利技术实施例提供的一种基于令牌桶算法的IOPS控制方法,包括:确定每秒内IOPS令牌桶的时间粒度值;利用所述时间粒度值以及每秒的令牌添加最大值,确定每秒内的时间间隔值及每个时间间隔添加的令牌值;利用所述每秒的时间间隔值及每个时间间隔添加的令牌值,向所述IOPS令牌桶添加令牌,以在执行存储读写操作时向所述IOPS令牌桶申请令牌;可见,在Ceph存储集群卷IOPS控制过程中,通过本方案公开的细化时间粒度的令牌桶算法,可以抑制读写压力在IOPS限定值上下波动、读写调度时间过长等随机扰动因素对卷IOPS控制的影响,显著地降低实际IOPS波动幅度,从而提高Ceph存储集群中对卷IOPS控制的鲁棒性及控制精度;本专利技术还公开了一种基于令牌桶算法的IOPS控制装置、设备及计算机可读存储介质,同样可以实现上述技术效果。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为现有技术中的IOPS控制流程图;图2为现有技术中的扰动因素下的令牌数变化示意图;图3为本专利技术实施例公开的一种基于令牌桶算法的IOPS控制方法流程示意图;图4为本专利技术实施例公开的细化时间粒度的令牌桶算法IOPS控制流程图;图5为本专利技术实施例公开的细化时间粒度后扰动因素下的令牌数变化示意图;图6为本专利技术实施例公开的一种基于令牌桶算法的IOPS控制装置结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明的是,IOPS(Input/OutputOperationsPerSecond,每秒读写操作的次数)令牌桶中的每一个令牌代表允许进行一次读写操作。当执行一次读写操作时,首先要去IOPS令牌桶中申请一支令牌,如果申请不到,本次读写便会被阻塞,直到获取到对应的令牌后,本次读写才会继续执行。现有方案中IOPS控制方法对卷读写操作控制流程如图1所示,具体包括如下几个步骤:1、每次执行存储读写操作时,首先要到令牌桶申请令牌;2、若令牌桶中令牌个数不为0,则可申请到令牌,则将当前令牌桶中令牌数量减1,并继续后面的读写流程;3、若令牌桶中令牌个数为0,即申请不到令牌,则该次读写操作阻塞;4、每秒时间到时,令牌桶中令牌数量得到更新,再次进行上述判断。但是,该控制方式在随机扰动因素下,如读写压力在IOPS限定值V上下波动、读写调度时间过长等,将无法正常控制卷IOPS,令牌桶中的令牌数在扰动因素下的令牌数变化情况示意图如图2所示。可以看出,在正常读写过程中,当在t+5秒出现随机扰动因素,则会造成t+5秒添加到令牌桶中的V个令牌无法消耗完并积累R个令牌。而在t+6秒,读写压力足够大且卷读写调度无阻塞时,将会消耗前面积累的令牌,从而造成t+6秒实际的IOPS大于设定值V。若令牌桶最大容量为MAX=α*V,其中α为令牌桶容本文档来自技高网...
一种基于令牌桶算法的IOPS控制方法及装置

【技术保护点】
一种基于令牌桶算法的IOPS控制方法,其特征在于,包括:确定每秒内IOPS令牌桶的时间粒度值;利用所述时间粒度值以及每秒的令牌添加最大值,确定每秒内的时间间隔值及每个时间间隔添加的令牌值;利用所述每秒的时间间隔值及每个时间间隔添加的令牌值,向所述IOPS令牌桶添加令牌,以在执行存储读写操作时向所述IOPS令牌桶申请令牌。

【技术特征摘要】
1.一种基于令牌桶算法的IOPS控制方法,其特征在于,包括:确定每秒内IOPS令牌桶的时间粒度值;利用所述时间粒度值以及每秒的令牌添加最大值,确定每秒内的时间间隔值及每个时间间隔添加的令牌值;利用所述每秒的时间间隔值及每个时间间隔添加的令牌值,向所述IOPS令牌桶添加令牌,以在执行存储读写操作时向所述IOPS令牌桶申请令牌。2.根据权利要求1所述的IOPS控制方法,其特征在于,利用所述时间粒度值以及每秒的令牌添加最大值,确定每秒内的时间间隔值及每个时间间隔添加的令牌值,包括:利用所述时间粒度值N确定每秒内的时间间隔值1/N;根据所述时间粒度值N以及每秒的令牌添加最大值V,确定每个时间间隔添加的令牌值V/N。3.根据权利要求2所述的IOPS控制方法,其特征在于,还包括:检测所述IOPS令牌桶内的令牌数是否大于最大令牌阈值;若是,则发出提示信息。4.根据权利要求1至3中任意一项所述的IOPS控制方法,其特征在于,还包括:确定所述IOPS令牌桶的IOPS最大上浮比率Ratio_MAX;Ratio_MAX=α/N;其中,α为令牌桶容纳系数,N为时间粒度值N;若所述IOPS最大上浮比率Ratio_MAX大于预定上浮比率阈值,则按照预定规则调整所述时间粒度值N。5.一种基于令牌桶算法的IOPS控制装置,其特征在于,包括:第一确定模块,用于确定每秒内IOPS令牌桶的时间粒度值;第二确定模块,用于利用所述时间粒度值以及每秒的令牌添加最大值,确定每秒内的时间间隔值及每个时间间隔添加的令牌值;令牌添...

【专利技术属性】
技术研发人员:朱行武
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1