发明内容
本发明所要解决的技术问题是,为了解决现有技术采用固定间隔时间采集系统负载并进行控制,造成“控制过密”或者“控制过疏”的情况,本发明充分考虑真实环境下Web服务任务响应时间的动态可变性,提出一种基于响应时间趋势分析的Web服务系统访问量控制的方法、装置和服务器。
本发明解决上述技术问题的技术方案是,提供一种基于响应时间趋势分析的Web服务系统访问量控制装置、控制方法、和服务器,以动态的分析Web服务任务响应时间的变化趋势,实时的对访问量进行合理控制,从而对高负载环境下的Web服务系统的性能进行优化。具体为,
一种基于响应时间趋势分析的Web服务系统访问量控制装置,包括:
响应时间数据获取模块:用于获取系统的平均任务响应时间,并将其发送给控制决策模块;
控制决策模块:用于接收响应时间数据获取模块发来的平均任务响应时间,并计算新增任务数控制量和下一次控制等待时间,并向访问控制模块发出新增任务数控制量和下一次控制等待时间;
访问控制模块:用于接收控制决策模块发来的新增任务数控制量和下一次控制等待时间,并对Web服务系统的新增任务数进行控制。
其中,控制决策模块包含响应时间预处理单元、分析计算单元、控制决策单元:响应时间预处理单元接收来自响应时间监测单元的arti值,确定其中的突出点;分析计算单元接收来自响应时间预处理单元的arti和IFTi序列,计算arti序列非突出点对应的平均斜率XL,并计算控制决策参考值EVA;控制决策单元接收来自分析计算单元的控制决策参考值EVA数据,决定下一次控制的等待时间wait和新增任务数控制量VPUT。
在wait时间段内对新增访问任务进行控制具体为:在长度为wait时间段内,拒绝第VPUT+1个及其以后的新增任务请求。确定突出点具体包括:调用公式: 计算arti序列的正/负突出度ZTi和FTi,根据公式: 计算平均正/负突出度ZTA和FTA,序列中满足条件:
arti-arti-1>σ×ZTA且arti-arti+1>σ×FTA或
arti-1-arti>σ×FTA且arti+1-arti>σ×ZTA的记录值arti为突出点,其中,ω为距离弱化因子,1<σ,k为预定时间内任务响应时间数。根据公式:
计算wait,其中,wc为控制间隔时间,trp为系统的吞吐率,控制决策参考值越大,下一次控制间隔时间wait则越小;根据公式:
本发明还提出一种基于响应时间趋势分析的Web服务系统访问量控制方法,包括:响应时间数据获取模块获取系统的平均任务响应时间,并将其发送给控制决策模块;控制决策模块接收响应时间数据获取模块发来的平均任务响应时间,并计算新增任务数控制量和下一次控制等待时间,并向访问控制模块发出新增任务数控制量和下一次控制等待时间;访问控制模块接收控制决策模块发来的新增任务数控制量和下一次控制等待时间,并对Web服务系统的新增任务数进行控制。
更进一步,本发明实施例所提供的基于响应时间趋势分析的Web服务系统访问量控制装置,可以部署于一个现有的服务器中。
本发明所提供的基于响应时间趋势分析的Web服务系统访问量控制的方法、装置,旨在动态的跟踪Web服务系统的运行时性能变化趋势,然后自适应的设定合理的新增任务数控制量,并决定下一次控制的时机,从而优化系统性能,使系统在高负载状况下达到最合理的运行状态。
相对于传统的Web服务系统访问量管理方法,具有以下优点:避免了异常数据对决策的影响;采用趋势分析的方法,动态的决定下一次控制的时机,避免了“控制过密”和“控制过疏”的情况,同时动态的调整新增任务数。
具体实施方式
下面结合附图对本发明作进一步的详细描述,但本发明的实施和保护范围不限于此。下面对该方法、装置和服务器进行详细说明:
图1为本发明实施例中的基于响应时间趋势分析的Web服务系统访问量控制装置的组成结构示意图。该装置包括:
响应时间数据获取模块,包含响应时间监测单元,用于获取系统的平均任务响应时间,并将其发送给控制决策模块;
控制决策模块,包含响应时间预处理单元、分析计算单元、控制决策单元,响应时间预处理单元接收来自响应时间监测单元的arti值,确定其中的突出点;分析计算单元接收来自响应时间预处理单元的arti和IFTi序列,计算arti序列非突出点对应的平均斜率XL,并计算控制决策参考值EVA;控制决策单元接收来自分析计算单元的控制决策参考值EVA数据,决定下一次控制的等待时间wait和新增任务数控制量VPUT;
访问控制模块,接收控制决策单元发来的下一次控制的等待时间wait和新增任务数控制量VPUT,在wait时间段内对新增访问任务进行控制。
图2为本发明实施例中的基于响应时间趋势分析的Web服务系统访问量控制的方法流程示意图。该方法包括:
步骤1:获取并计算本阶段的平均任务响应时间。响应时间监测单元收集最近k个(一般可取5到10之间的自然数)任务响应时间arti(即为,向Web服务系统提交请求后得到成功响应的等待时间),并将此值发送给控制决策模块。其中i为自然数,代表此次所计算出的任务响应时间的标号,i满足0<i≤k。
步骤2:响应时间预处理单元确定突出点,计算控制决策参考值,计算下一次控制等待时间和新增任务数控制量。
2.1,确定突出点。响应时间预处理单元接收来自响应时间监测单元的arti值,根据arti值确定其中的突出点。由于实际的云系统的运行受到诸多系统因素(消息异常延迟、连接带宽变化、运算资源冲突等)和非系统因素(系统、软件和硬件的偶发失效、消息丢失等)的影响,arti值序列中存在部分记录值明显脱离整体变化规律的情况,也就是突出点。这些点突出点不能被视为一般的常规数据进行分析和评估,而需要单独处理。确定突出点的步骤如下:
首先,调用如下公式计算arti序列的正/负突出度ZTi和FTi:
然后计算平均正/负突出度,ZTA和FTA。
其中,ω为距离弱化因子,取为0到1之间的实数,一般可取为0.5,其作用是使较早的记录值对应的突出度的影响较小,k为预定时间内任务响应时间记录值。
然后,判断序列中某个记录值arti为突出点的条件为:
arti-arti-1>σ×ZTA且arti-arti+1>σ×FTA或
arti-1-arti>σ×FTA且arti+1-arti>σ×ZTA
其中σ为一个给定的系数,满足1<σ,一般可取为10到20之间的自然数。
为每个记录值arti设一个标记变量IFTi,用来记录此记录值是否为突出点:
完成上述计算后,响应时间预处理单元将获得的arti和IFTi序列发送给分析计算单元。
2.2,计算控制决策参考值。分析计算单元接收来自响应时间预处理单元的arti和IFTi序列,计算arti序列非突出点对应的平均斜率XL,并计算控制决策参考值EVA。斜率XL是对未来响应时间增长趋势强弱的预期,调用公式:
计算斜率XL,其中j与i为非突出点标号。然后,计算突出点变化趋势对未来响应时间的平均影响力AINF。
,其中,α表示衰减因子,取小于1大于0的正实数,一般可取为0.5。衰减因子的作用是,使离现在时间越远的突出点产生的影响力更小,使较近的突出点的影响力更大。其中,记录值变化量TP
i为:
根据公式:EVA=AINF+XL×arti计算控制决策参考值EVA,该参考值代表了综合考虑历史平均值和突出点异常值的未来响应时间的预期量。
分析计算单元将EVA发送给控制决策单元。
2.3,计算下一次控制等待时间和新增任务数控制量。控制决策单元接收来自分析计算单元的控制决策参考值EVA数据,决定下一次控制的等待时间wait和新增任务数控制量VPUT。根据公式:
计算wait,其中,wc为系统初始给出的控制间隔时间(一般取值为10000至100000毫秒之间),trp为系统理想状态下的吞吐率(由Web服务系统的软硬件执行能力决定,或由系统提供商设定),其倒数
即为系统理想状态下单个任务的响应时间。通过控制决策参考时间控制下一次的控制时间间隔。控制决策参考值越大,下一次控制间隔时间wait则越小,以积极应对可能来临的系统负载激增;反之,控制决策参考值越小,则下一次控制间隔时间wait则应适度增大,以至于达到系统初始给出的控制间隔时间wc,以避免控制过密。进一步计算新增任务数控制量VPUT,
控制决策单元在完成上述计算后,将下一次控制的等待时间wait和新增任务数控制量VPUT发给访问控制模块,访问控制模块完成对新增访问任务的控制。
步骤3:访问控制模块接收控制决策单元发来的下一次控制的等待时间wait和新增任务数控制量VPUT,在wait时间段内对新增访问任务进行控制,控制的具体方式为:在长度为wait时间段内,拒绝第VPUT+1个及其以后的新增任务请求,也就是使wait时间段内接收的新增任务的数量不大于VPUT。在完成此长度为wait的时间段的控制后,重新执行步骤1。
本发明实施例所提供的基于响应时间趋势分析的Web服务系统访问量控制装置,可以部署于一个现有的服务器中,也可以部署以一个单独设置的专用于进行基于响应时间趋势分析的Web服务系统访问量控制的服务器中。为此,本发明提供了一种服务器,包括本发明实施例所提供的基于响应时间趋势分析的Web服务系统访问量控制装置,该基于响应时间趋势分析的Web服务系统访问量控制装置的组成结构示意图如图1所示。本领域普通技术人员可以理解实现上述实施例方法中基于响应时间趋势分析的Web服务系统访问量控制的过程,可以通过程序指令相关的硬件来完成,该程序在执行时执行上述方法中的对应步骤。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。