一种基于系统硬件使用率的动态令牌桶生成方法技术方案

技术编号:15519178 阅读:51 留言:0更新日期:2017-06-04 09:07
本发明专利技术提供了一种基于系统硬件使用率的动态令牌桶生成方法,采用多指标评估,可以准确的评估系统负载状况,提高系统稳定水平,包括以下步骤:获取当前系统硬件使用率;根据当前系统硬件使用率计算得到令牌桶的桶深度以及可注入的令牌数;向令牌桶中注入令牌,如果令牌桶中令牌数超出桶深度,设置当前令牌数为桶深度,否则,桶深度不变。

【技术实现步骤摘要】
一种基于系统硬件使用率的动态令牌桶生成方法
本专利技术涉及服务系统运行安全
,具体为一种基于系统硬件使用率的动态令牌桶生成方法。
技术介绍
在设备通讯过程中,由于数据的突发性,如果不加以控制,很容易导致系统死机,无响应等状况的出现。因此在通讯领域大量的使用了令牌桶技术来处理这类突发状况。在大型服务领域(如大型网站等),也常常因为出现突发状况,系统压力陡增,出现CPU,内存使用暴增,进而导致服务器宕机。因而也常常采用令牌桶,熔断器等技术来处理该类状况。一般令牌桶采用固定桶深度或者依赖CPU使用动态调整桶深度,如公告号为CN102164083的专利中公开的一种令牌桶刷新方法,由于任务的复杂性,某些任务是计算密集型,有的是IO密集型,由于任务不同,对于IO密集型,用CPU来调整桶大小,就显得非常不及时,为了克服评估部准确的问题,一些实现就简单的降低桶深度的最大值,导致资源的浪费。
技术实现思路
针对上述问题,本专利技术提供了一种基于系统硬件使用率的动态令牌桶生成方法,采用多指标评估,可以准确的评估系统负载状况,提高系统稳定水平。本专利技术的技术方案如下:一种基于系统硬件使用率的动态令牌桶生成方法,其特征在于:包括以下步骤:获取当前系统硬件使用率;根据当前系统硬件使用率计算得到令牌桶的桶深度以及可注入的令牌数;向令牌桶中注入令牌,如果令牌桶中令牌数超出桶深度,设置当前令牌数为桶深度,否则,桶深度不变。进一步的,在根据注入令牌数调节桶深度后,判定令牌桶的当前状态,如果令牌桶的当前状态正常,开启延时定时器,如果定时器时间到,重新根据当前系统硬件使用率计算得到令牌桶的桶深度以及可注入的令牌数;如果令牌桶的当前状态不正常,则关闭令牌桶。进一步的,系统硬件使用率包括CPU使用率、内存使用率、硬盘使用率、网络带宽使用率。进一步的,根据系统硬件使用率得到系统压力值,根据系统压力值计算得到注入令牌桶的令牌数。进一步的,根据单项评估函数分别计算机系统中各个硬件的单项评估可用率,分别得到计算机系统各个中硬件的评估可用率,根据多个单项评估可用率得到系统可用度,根据木桶理论由最低的单项评估可用率确定系统可用度,根据系统可用度,计算得到桶深度。进一步的,系统压力值通过以下压力检测评估函数公式计算:c=(X1*X1r+X2*X2r...+Xn*Xnr)*nr+OldRat*or其中,X1为硬件X1的使用率,X1r为硬件X1的使用因子,其中X2为硬件X2的使用率,X2r为硬件X2的使用因子,其中XN为硬件XN的使用率,XNr为硬件XN的使用因子,nr为评估因子,OldRat为上一次评估结果,or为评估因子,满足X1r+X2r+...+Xnr=1,nr+or=1。进一步的,计算注入令牌桶的令牌数通过以下公式计算:(1-c)*(MAX-MIN)+MIN其中,c为系统压力值,MAX为最大注入令牌数,MIN为最小注入令牌数。进一步的,单项评估可用率通过单项评估函数以下公式计算:(min(max(x,xMIN),xMAX)-xMIN)/(xMAX-xMIN)其中为x为x指标实测空闲率,范围为0-1,表示实际的系统硬件的空闲率,xU为x指标的评估可用率,表示根据该检测指标计算出的实际可用率,xU范围为0-1,xMIN为x指标的最小实测空闲率,xMIN范围为0-1,xMAX为x指标的最大实测空闲率,xMAX范围为0-1,min是最小值函数,max是最大值函数,min(max(x,xMIN),xMAX)计算x取值范围只能在xMIN-xMAX之间;进一步的,系统可用度通过以下公式计算:yU=MIN([x1U,x2U..........xnU])其中,yU为系统最终可用度,范围为0-1,MIN为返回数组最小值计算函数,x1U为根据单指标评估函数计算出的实际x1空闲率,x2U为根据单指标评估函数计算出的实际x2空闲率,xnU为根据单指标评估函数计算出的实际xn空闲率。进一步的,桶深度通过以下公式计算:tU=(1-tr)*(yU*(tMAX-tMIN)+tMIN)+tr*tUx其中,tU为最终桶深度,yU为系统可用度,tMAX为桶最大深度,tMIN为桶最小深度,tr为惯性因子(0-1),tUx为前一次计算的桶深度。本专利技术的基于系统硬件使用率的动态令牌桶生成方法,令牌桶可以根据系统中硬件的使用率,调节令牌桶的深度和注入令牌桶的令牌数,在系统硬件使用率较高时减小令牌桶深度和注入令牌桶的令牌数,在系统硬件使用率较低时增加令牌桶深度和注入令牌桶的令牌数,在不更换系统硬件的情况下,提升了系统的硬件的处理能力,采用多指标评估,综合考虑了包括CPU使用率、内存使用率、硬盘使用率、网络带宽使用率,可以准确的评估系统负载状况,提高系统稳定水平,其方法实现简单,可靠,可以有效的应对在系统过载的处理,增强系统的稳定性。附图说明图1为本专利技术的基于系统硬件使用率的动态令牌桶生成方法的流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。具体实施例1:见图1,本专利技术的一种基于系统硬件使用率的动态令牌桶生成方法,包括以下步骤:步骤201:获取当前系统硬件使用率,根据系统硬件使用率,生成合乎当前的系统的令牌桶的桶深度以及可注入的令牌数,执行步骤202;步骤202:向令牌桶中注入令牌;如果发现令牌桶中令牌数超出桶深度,设置当前令牌数为桶深度,执行步骤203;步骤203:判定令牌桶的当前状态,如果正常,继续执行步骤204,否则,执行步骤205;步骤204:开启延时定时器,如果定时器时间到,执行步骤201;步骤205:关闭令牌桶。在步骤201中,系统硬件使用率包括CPU使用率和内存使用率,根据系统硬件使用率得到系统压力值,根据系统压力值计算得到注入令牌桶的令牌数;根据单项评估函数分别计算机系统中硬件的单项评估可用率,分别得到CPU和内存的评估可用率,根据多个单项评估可用率得到系统可用度,根据木桶理论由最低的单项评估可用率确定系统可用度,根据系统可用度,计算得到桶深度。系统压力值通过以下压力检测评估函数公式计算:c=(X1*X1r+X2*X2r)*nr+OldRat*or其中X1为CPU的使用率,X1r为CPU的使用因子,其中X2为内存的使用率,X2r为内存的使用因子,nr为评估因子,OldRat为上一次评估结果,or为评估因子,满足X1r+X2r=1,nr+or=1;计算注入令牌桶的令牌数通过以下公式计算:(1-c)*(MAX-MIN)+MIN其中,c为系统压力值,MAX为最大注入令牌数,MIN为最小注入令牌数。单项评估可用率通过单项评估函数以下公式计算:(min(max(x,xMIN),xMAX)-xMIN)/(xMAX-xMIN)其中为x为x指标实测空闲率,范围为0-1,表示实际的cpu或内存等的空闲率,xU为x指标的评估可用率,表示根据该检测指标计算出的实际可用率,xU范围为0-1,xMIN为x指标的最小实测空闲率,xMIN范围为0-1,xMAX为x指标的最大实测空闲本文档来自技高网...
一种基于系统硬件使用率的动态令牌桶生成方法

【技术保护点】
一种基于系统硬件使用率的动态令牌桶生成方法,其特征在于:包括以下步骤:获取当前系统硬件使用率;根据当前的系统硬件使用率计算得到令牌桶的桶深度以及可注入的令牌数;向令牌桶中注入令牌,如果令牌桶中令牌数超出桶深度,设置当前令牌数为桶深度,否则,桶深度不变。

【技术特征摘要】
1.一种基于系统硬件使用率的动态令牌桶生成方法,其特征在于:包括以下步骤:获取当前系统硬件使用率;根据当前的系统硬件使用率计算得到令牌桶的桶深度以及可注入的令牌数;向令牌桶中注入令牌,如果令牌桶中令牌数超出桶深度,设置当前令牌数为桶深度,否则,桶深度不变。2.根据权利要求1所述的一种基于系统硬件使用率的动态令牌桶生成方法,其特征在于:在根据注入令牌数调节桶深度后,判定令牌桶的当前状态,如果令牌桶的当前状态正常,开启延时定时器,如果定时器时间到,重新根据当前系统硬件使用率计算得到令牌桶的桶深度以及可注入的令牌数;如果令牌桶的当前状态不正常,则关闭令牌桶。3.根据权利要求2所述的一种基于系统硬件使用率的动态令牌桶生成方法,其特征在于:系统硬件使用率包括CPU使用率、内存使用率、硬盘使用率和网络带宽使用率。4.根据权利要求3所述的一种基于系统硬件使用率的动态令牌桶生成方法,其特征在于:根据系统硬件使用率得到系统压力值,根据系统压力值计算得到注入令牌桶的令牌数。5.根据权利要求3所述的一种基于系统硬件使用率的动态令牌桶生成方法,其特征在于:根据单项评估函数分别计算机系统中各个硬件的单项评估可用率,分别得到计算机系统各个中硬件的评估可用率,根据多个单项评估可用率得到系统可用度,根据木桶理论由最低的单项评估可用率确定系统可用度,根据系统可用度,计算得到桶深度。6.根据权利要求4所述的一种基于系统硬件使用率的动态令牌桶生成方法,其特征在于:系统压力值通过以下压力检测评估函数公式计算:c=(X1*X1r+X2*X2r...+Xn*Xnr)*nr+OldRat*or其中,X1为硬件X1的使用率,X1r为硬件X1的使用因子,其中X2为硬件X2的使用率,X2r为硬件X2的使用因子,其中XN为硬件XN的使用率,XNr为硬件XN的使用因子,nr为评估因子,OldRat为上一次评估结果,or为评估...

【专利技术属性】
技术研发人员:尤克斌李刚马金满徐帆陈浩东孙明亮朱波王振兴
申请(专利权)人:无锡路通视信网络股份有限公司
类型:发明
国别省市:江苏,32

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

1