一种基于队列的任务流量监控方法及系统的制作方法

文档序号:9754488阅读:980来源:国知局
一种基于队列的任务流量监控方法及系统的制作方法
【技术领域】
[0001]本发明涉及计算机控制管理领域,特别涉及任务流量控制和系统的状态判断。
【背景技术】
[0002]在计算机领域,传统基于队列的任务流量控制主要涉及限制队列的容量,甚至是不限制队列的容量只限制队列所占用的内存大小,于是会出现两种情况:
一种是当入队列速度大于出队列速度时,队列出现积压,而另一种则是入队列速度小于出队列速度,队列几乎空闲。本发明主要用于应对第一种情况,当出队列的程序因为一些原因而出现工作效率下降时,队列会出现积压,此时如果不及时处理,则会出现更大量的积压。

【发明内容】

[0003]本发明提供一种基于队列的任务流量监控方法,解决了现有基于队列的任务流控制中任务积压发现晚,处理不及时的问题。
[0004]本方法通过定时监测队列入队速度,队列出队速度和队列当前积压量等观测量,以及这些量与时间的关系,最终达到通过判断任务处理速度来调节任务入队速度并以此达到队列无大量积压的目的。
[0005]—种基于队列的任务流量监控方法,包括:
利用程序代理完成队列操作,定时获取监控观测量;获取监控观测量的监控周期可自定义配置;
分析监控观测量,当队列当前积压量大于单位时间内处理的任务量时,判定为队列积压,则减小队列期望容量,减少队列入队速度;当队列入队速度大于队列出队速度且队列出队速度小于队列出队请求速度时,判定为队列缓存不足,则增大队列期望容量,增加队列入队速度。
[0006]进一步地,所述队列操作包括入队程序和出队程序:
入队程序具体步骤为:
入队请求操作;
判断队列当前积压量是否小于队列期望容量,如果小于则执行入队操作并将队列入队速度加一,否则,入队程序会延时等待,循环请求入队,直到能够执行入队操作为止;
出队程序具体步骤为:
出队请求操作;
判断队列当前积压量是否为零,如果不是,执行出队操作并对队列出队速度加一,否贝1J,出队程序会延时等待,循环请求出队,直到能够执行出队操作为止。
[0007]本发明采用如下系统来实现:
一种基于队列的任务流量监控系统,包括:
获取模块,用于利用程序代理完成队列操作,定时获取监控观测量;获取监控观测量的监控周期可自定义配置;
分析判断模块,分析监控观测量,当队列当前积压量大于单位时间内处理的任务量时,判定为队列积压,则减小队列期望容量,减少队列入队速度;当队列入队速度大于队列出队速度且队列出队速度小于队列出队请求速度时,判定为队列缓存不足,则增大队列期望容量,增加队列入队速度。
[0008]进一步地,所述队列操作包括入队程序和出队程序:
入队程序具体步骤为:
入队请求操作;
判断队列当前积压量是否小于队列期望容量,如果小于则执行入队操作并将队列入队速度加一,否则,入队程序会延时等待,循环请求入队,直到能够执行入队操作为止;
出队程序具体步骤为:
出队请求操作;
判断队列当前积压量是否为零,如果不是,执行出队操作并对队列出队速度加一,否贝1J,出队程序会延时等待,循环请求出队,直到能够执行出队操作为止。
[0009]综上所述,本发明提供了一种基于队列的任务流量监控方法及系统,利用程序代理完成队列操作,定时获取监控观测量;获取监控观测量的监控周期可自定义配置;分析监控观测量,当队列当前积压量大于单位时间内处理的任务量时,判定为队列积压,则减小队列期望容量,减少队列入队速度;当队列入队速度大于队列出队速度且队列出队速度小于队列出队请求速度时,判定为队列缓存不足,则增大队列期望容量,增加队列入队速度。
[0010]本发明的有益效果为,在出现队列积压或队列缓存不足的情况下,可以动态调整队列期望容量,从而动态的调整队列中缓存的任务量,在不降低队列出队速度的情况下,尽量减少缓存在队列中的任务量,避免出现大量队列任务积压的情况,即使是出队程序工作停止,队列中也只会最多缓存队列出队速度相应最小倍数的任务量,且可以及时通知系统。即使是系统停机,也最多只会丢失队列出队速度相应最小倍数的任务量。
【附图说明】
[0011]为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0012]图1为本发明提供的一种基于队列的任务流量监控方法实施例流程图;
图2为本发明提供的一种基于队列的任务流量监控系统实施例结构图。
【具体实施方式】
[0013]本发明给出了基于队列的任务流量监控方法及系统,为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明:本发明给出了一种基于队列的任务流量监控方法实施例,如图1所示,包括: SlOl利用程序代理完成队列操作,定时获取监控观测量;
其中,定时获取的监控观测量如下:
队列入队速度:单位时间内,队列加入的任务数量。
[0014]队列入队请求速度:单位时间内,入队列程序请求入队列的请求数量。
[0015]队列出队速度:单位时间内,队列取出的任务数量。
[0016]队列出队请求速度:单位时间内,出队列程序请求出队列的请求数量。
[0017]队列最大容量:指队列本身的内部最大容量,有些队列没有该值。
[0018]队列当前积压量:指队列内当前的任务积压量。
[0019]队列期望容量:队列程序代理的一个动态属性值,描述队列当前所期望的任务积压量,在队列当前积压量大于队列期望容量的情况下,入队操作会返回队列已满的假象,且队列期望容量不大于队列最大容量。
[0020]其中,在定时获取监控观测量之前,还包括:对上一个监控周期的队列入队速度、队列入队请求速度、队列出队速度、队列出队请求速度监控观测量进行清零处理,且监测周期需要依靠实际系统的正常处理速度来定。
[0021]S102分析监控观测量,并判定是否出现队列积压或队列缓存不足的情况;
其中,队列状态中还包括,当队列入队请求速度大于队列出队请求速度时,为入队程序速度大于出队程序速度的状态;
当队列出队速度与队列出队请求速度相等时,为出队程序工作饱和的状态;
当队列出队请求速度降至O时,为出队程序工作停止的状态。
[0022]S103当队列当前积压量大于单位时间内处理的任务量时,判定为队列积压;
S104减小队列期望容量,减少队列入队速度;
其中,在出队程序工作饱和的情况下,出现队列积压,则调整队列期望容量为队列出队速度即队列出队请求速度的1.1倍,在此,数值1.1倍只是一个经验值,也可以根据需要调整为其它大于I或者小于I的值,此外还可以把出现队列积压的情况通知其它系统。
[0023]S105当队
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1