采用顾客影响性能度量的软件恢复方法的动态调谐的制作方法

文档序号:6651118阅读:226来源:国知局
专利名称:采用顾客影响性能度量的软件恢复方法的动态调谐的制作方法
技术领域
本发明涉及软件恢复,更具体来说,涉及用于采用顾客影响性能度量调谐软件恢复方法的系统及方法。
背景技术
在大工业软件系统中,需要大量的监测和管理来提供预期性能和可靠性。称作软故障的一些特定类型的软件故障已经表明使系统处于降级模式,在此模式中系统仍然可工作,但可用系统容量已经减少。
软故障可能由(可能)长时间运行过程中一个或多个软件数据结构的状态的演变所引起。这种演变称作软件老化。在广泛使用的软件中已经观察到软件老化。
软缺陷可能因以下方面的问题而出现同步机制,例如信标;核心结构,例如文件表分配;数据库管理系统,例如数据库锁死锁;以及对于大的多层分布式系统的正确操作必不可少的其它资源分配机制。由于这些资源中的一部分采用自修复机制、例如超时来设计,因此,一些系统可在一段时间之后从软缺陷中恢复。
当前的操作模式采用基于服务器的监测工具来提供服务器健康检查。这种方法可能建立性能的用户感觉与性能的监测工具观察之间的差距。
因此,需要一种用于采用顾客影响性能度量调谐软件恢复方法的系统及方法。

发明内容
根据本公开的一个实施例,用于触发软件恢复系统和/或方法的计算机实现的方法包括接收对资源的请求,确定对于对资源的请求的估算响应时间,确定估算响应时间大于第一门限,确定大于第一门限的估算响应时间的数量大于或等于动态第二门限,以及触发软件恢复系统和/或方法。
确定估算响应时间包括对多个响应时间抽样,以及确定平均响应时间,其中平均响应时间用作估算响应时间。
第一门限根据大于第一门限的估算响应时间的数量而变化,以及每当第一门限改变时确定动态第二门限。该方法包括随着大于第一门限的响应时间的数量来增大第一门限。
动态第二门限为正整数。
根据本公开的一个实施例,用于触发软件恢复系统和/或方法的计算机实现的方法包括接收对资源的请求,确定对于对资源的请求的响应时间,在确定响应时间大于第一门限时增加大于第一门限的响应时间的数量,在确定响应时间小于第一门限时减少大于第一门限的响应时间的数量,确定大于第一门限的响应时间的数量大于或等于动态第二门限,以及触发软件恢复系统和/或方法。
该方法包括在确定大于第一门限的响应时间的数量大于D时,把第一门限增加标准偏差的数量,其中,第一门限可增加K个标准偏差,以及K和D是相同或不同的正整数,第二门限为K乘以D;以及在增加第一门限时,重新确定动态第二门限。
该方法包括在确定大于第一门限的响应时间的数量小于D时,把第一门限减少标准偏差的数量,其中,第一门限可减少K个标准偏差,以及K和D是相同或不同的正整数,第二门限为K乘以D;以及在减少第一门限时,重新确定动态第二门限。
对资源的请求由客户机产生。
对资源的请求由负荷注入器产生。
该方法包括初始化,其中,大于第一门限的响应时间的数量设置为零,第一门限设置为最低等级,以及动态第二门限设置为最高等级。
根据本公开的一个实施例,用于区别请求突发与软件产品的性能降低的计算机实现的方法包括接收多个对资源的请求,把多个请求中的每个与第一可变门限进行比较,改变第一可变门限以区别请求突发与用于处理多个请求的软件产品的性能降低,在改变第一可变门限时改变第二可变门限,以及在确定大于预定最高等级的可变门限的响应时间的数量大于或等于第二可变门限时触发软件恢复系统和/或方法。
所述计算机实现的方法还包括确定使软件恢复被触发的各请求的源,以及确定使软件恢复被触发的预定数量的请求的共同源,其中,在多个计算机节点之中最接近共同源的计算机节点上触发软件恢复系统或方法。
所述计算机实现的方法还包括初始化,其中,大于第一可变门限的响应时间的数量设置为零,第一可变门限设置为最低等级,以及第二可变门限设置为最高等级。


下面将参照附图更详细说明本发明的优选实施例,附图包括图1是根据本公开的一个实施例的系统的示图;图2是根据本公开的一个实施例的方法的流程图;图3是根据本公开的一个实施例的方法的图解;图4是根据本公开的一个实施例的方法的流程图;以及图5是根据本公开的一个实施例的方法的流程图。
具体实施例方式
根据本公开的一个实施例,一种系统及方法识别性能降级并采用软件恢复对其校正。老化软件的性能降级通过跟踪以及响应顾客影响度量的变化值来检测。系统及方法通过触发软件恢复事件来改良性能降级。
软件恢复事件是为了防止将来故障的运行应用或系统的抢先重启。重启可终止运行中的所有线程,并释放与线程关联的所有资源。软件恢复事件可包括附加活动,例如备份例程或垃圾收集。
识别性能降级的方法自动区别到达的突发(例如活动)引起的性能降级与软件老化引起的性能降级。该方法定义和识别软件老化引起的性能降级,用于通过监测顾客影响度量来触发软件恢复。
通过监测用户体验延迟、即顾客影响度量的一个实例,该方法把系统性能的用户观察与系统性能的工具监测观察相联系。由于顾客影响度量用来触发恢复方法,因此,性能的顾客观察与性能的工具监测系统观察相同。另外,由于多个容器(以下称作“桶”)用来计算已测量顾客影响度量中的可变性,因此,作为到达过程中的瞬变的函数的降级可与作为软件老化的函数的降级区分开。此外,还可确定顾客影响度量的平均值的抽样和汇总,统计定理、如中心极限定理可应用于抽样和汇总以检测系统降级。
大家理解,本发明可通过各种形式的硬件、软件、固件、专用处理器或其组合来实现。在一个实施例中,本发明可通过软件实现为程序存储装置上有形包含的应用程序。应用程序可上载到包含任何适当体系结构的机器上并由其执行。
参照图1,根据本发明的一个实施例,用于实现软件恢复的方法的计算机系统101其中还包括中央处理器(CPU)102、存储器103和输入/输出(I/O)接口104。计算机系统101一般通过I/O接口104耦合到显示器105以及各种输入装置106、如鼠标和键盘。支持电路可包括诸如高速缓存、电源、时钟电路以及通信总线之类的电路。存储器103可包括随机存取存储器(RAM)、只读存储器(ROM)、盘驱动器、磁带驱动器等或者其组合。本发明可实现为例程107,它存储在存储器103中,并由CPU 102运行以便处理来自信号源108的信号。因此,计算机系统101是通用计算机系统,它在运行本发明的例程107时成为专用计算机系统。
计算机平台101还包括操作系统和微指令代码。本文所述的各种过程和功能可以是微指令代码的一部分或者是通过操作系统运行的应用程序的一部分(或其组合)。另外,其它各种外围设备、如附加的数据存储装置以及打印装置可连接到计算机平台。
还要理解,由于附图所示的一部分构成系统组件和方法步骤可通过软件来实现,因此系统组件(或过程步骤)之间的实际连接可根据对本发明编程的方式而有所不同。在本文给出本发明的理论的情况下,本领域的技术人员能够设想本发明的这些及类似的实现或配置。
根据本公开的一个实施例,一种方法区别到达的突发引起的性能降级与由于作为系统容量降级的结果所增加的服务时间而引起的性能降级。例如,如果系统正以全容量进行工作,并且出现到达的短突发,则运行预防维护例程应该没有好处。但是,如果系统容量已经下降到使用户实际上退出系统的程度,则预防维护可得到保证。
性能的顾客影响度量、如响应时间可被频繁抽样、例如每2秒。顾客影响度量可估算计算机系统正以某个门限等级、如全容量进行工作的时间。抽样例如可采用部署在重要顾客场所的监测工具或负荷注入器来执行。负荷注入器创建代替操作客户机软件的实际用户的虚拟用户。监测工具收集各个基础设施组件上的响应时间。来自一个或多个虚拟用户客户机的事务请求由负荷注入器产生,从而建立受测试的一个或多个服务器上的负荷。这样,可确定平均事务响应时间请求的精确估算值。
在测量窗口中,当终止处理时,提取事务响应时间的样本。K表示可用桶的总数。D表示各桶的深度,例如当前桶无溢出地存储的最大出现次数。如果最后可用的桶(例如桶N=K)溢出,则执行恢复例程。
K个连续桶的每个的等级被跟踪。在任何给定时间,只考虑第N个桶的等级d。在当前桶溢出时,即当d首次超过D时,N被加一,而在当前桶为空时,即当d随后取零值时,N被减一。
参照图2,对于抽样事务201,当前平均延迟的估算值可确定为if(N=K)202then执行恢复例程203以及{END(结束)}204elseif(SN>x+Nσ)205thendo{d=d+1;}206if(d>D)207thendo{d=0;N=N+1;}208 and {END} 204elsedo{END}215elsedo{d=d-1;}209if(d<0)210thendo{d=0;}211if(N>0)212thendo{d=D;N=N-1;}213and{END}214elsedo{END}215elsedo{END}215根据本公开的一个实施例的一种方法在系统启动、如201时被初始化,以及在恢复203时,d=0;N=0。参照图3,N表示桶索引301;在图3所示的实例中,N=4。d表示当前桶302中存储的球的数量;在实例中,当前在桶4中有8个球。K个连续桶303被建模,从而跟踪各桶中的球数。如果顾客影响度量的值、例如测量延迟(例如响应事务请求时的延迟)超过顾客影响度量的预期值207、例如30秒,则一个球被投入当前桶中208。如果测量延迟小于顾客影响度量的预期值210和212,则从当前桶213中拿走一个球。
在当前桶溢出时205,通过向度量的预期值增加一个标准偏差206,从而移动到下一个桶,来调整预期延迟的估算。如果桶溢出205,则从预期延迟的估算中减去一个标准偏差209,从而移动到前一个全满桶。
通过改变D的值304,监测系统设计师或管理员可把方法的弹性调谐至到达的突发(例如事务请求)。方法对于顾客影响度量的降级的弹性通过调谐K的值来调整。K表示与激活软件恢复例程之前通常容许的平均值的标准偏差的数量。
根据本公开的一个实施例的一种方法在低负荷时提供符合需要的基线性能,因为它在顾客影响度量超过预定目标时被激活。通过采用多个连续桶来跟踪事务到达过程中的突发,以及采用桶深度来验证在其中应当改变性能度量的估算值的时刻,来实现这种性能。
根据本公开的一个实施例的一种方法可扩展到允许若干统计函数应用于估算顾客影响度量,例如求抽样窗口的平均值、或最大值、或最小值、或中值、或和;其方式是,采用其量值随当前桶的索引N变化的偏差,对于某组系数αN,把当前偏差设置为x+αNσ。通过使桶深度取决于N的值,该方法还可允许离开率将随着系统降级而减小的可能性。然后,D由DN代替。
根据本公开的一个实施例,一种方法可用来监测软件产品中的相干顾客影响度量,以及每当顾客影响度量的估算值超过指定目标时,触发软件恢复。
应当注意,在本说明中,采用术语“桶”和“球”来描述实施例。这些术语与用于计算事件发生次数的任何方法相似,例如,在计算机科学中,把阵列的元素看作桶,其中,阵列为K个元素(例如桶)长,以及各元素存储表示事件发生次数的数量(例如球)。本领域的技术人员会理解,跟踪顾客影响度量的其它方法是可行的。
根据本公开的一个实施例,一种方法可用来监测我们的产品中的相干顾客影响度量,以及每当顾客影响度量的估算值超过指定目标时,触发软件恢复。
通过动态调谐各桶N的DN的值,一种动态方法易于管理和提供自动匹配瞬时离开过程的性能等级。桶深度的动态调谐允许高负荷以及低负荷的系统性能的管理。另外,由于动态方法采用具有动态调谐深度的多个桶来计算已测量顾客影响度量中的可变性,因此,该方法可区别作为到达过程的瞬变的函数的降级与作为软件老化的函数的降级。
每当事务终止处理时,通过计算大于x+Nσ的样本值的当前出现次数d,来估算顾客影响度量的值SN,其中x为度量的参考平均预期值,N(=0,1,2,...,K)为当前桶的索引,以及σ为顾客影响度量的参考预期标准偏差。K表示用于算法的桶的总数。DN表示桶N的深度。如果最后可用的桶溢出,则执行恢复例程。该算法通过跟踪K个连续桶的等级进行工作。在任何给定时间,只考虑第N个桶的等级d。在当前桶溢出时,即当d首次超过DN时,N被加一,而在当前桶为空时,即当d随后取零值时,N被减一。每当第N个桶溢出时,下一个桶的深度DN+1将计算为DN+1=DMAX/(SN-(x+Nσ))。DMAX是为第一桶配置的最大深度。
参照图4,动态软件恢复的方法可写作
if(N=K)402then执行恢复例程403以及{END}404elseif(SN>x+Nσ)405thendo(d=d+1;}406if(d>DN) 407thendo{d=0;DN+1=DMAX/(SN·(x+Nσ));N=N+1;}408 and{END}404elsedo{END)415elsedo{d=d-1;}409if(d<0)410thendo{d=0;}411if(N>0)412thendo{d=DMAX;N=N-1;DN=DMAX;}413and{END}414elsedo{END}415elsedo{END}415动态方法在系统启动时进行初始化,以及在恢复时,d=0,N=0,D1=DMAX。该方法通过对K个连续桶建模进行工作。如果测量延迟超过顾客影响度量的预期值,则把一个球投入当前桶。如果测量延迟小于顾客影响度量的预期值,则从当前桶中去掉一个球。
在当前桶溢出时,下一个桶的深度被动态确定。另外,通过对度量的预期值增加一个标准偏差,来确定预期延迟的估算。这相当于移动到下一个桶。如果桶下溢,则从预期延迟的估算中减去一个标准偏差。这相当于向下移动到前一个桶。N表示当前桶索引。d表示当前桶中存储的球数。这样,根据本公开的一个实施例的一种方法通过动态确定DN的值,对明显的性能降级迅速作出反应。根据本公开的一个实施例的一种方法是对于顾客影响度量的降级的弹性通过调谐K的值来调整。K表示与激活软件恢复例程之前通常容许的平均值的标准偏差的数量。
根据本公开的一个实施例的一种动态调谐方法在低负荷时提供符合需要的基线性能,因为它仅在顾客影响度量超过目标时才被激活。通过采用多个连续桶来跟踪到达过程中的突发,以及采用可变深度的桶来验证应当改变性能度量估算值的时刻,来实现这种性能。动态调谐方法提供高负荷下的优良性能,因为它在检测到离开过程的减速时迅速调整当前桶深度。
通过当系统降级时把类函数FN(DMAX)用到估算的DN+1,并使与DMAX的桶深度关系为FN的函数,考虑离开率将随DMAX非线性地减小的可能性。DN+1则被确定为FN(DMAX),如上所述。
在极高负荷时,恢复特征可以仅针对恢复更接近有故障事务的源的组件。在大的分布式系统中,这个特征可用来破坏拒绝服务攻击,因而保护关键网络资源。例如,监测工具可跟踪导致触发软件恢复系统或方法的各请求的源,以及使软件恢复系统或方法针对导致触发软件恢复系统或方法的预定数量的请求、例如40%的请求的源。
根据本公开的一个实施例,软件恢复的动态方法可监测产品中的相干顾客影响度量,以及每当顾客影响度量的估算值超过指定目标时,触发软件恢复。软件恢复方法的动态调谐特征可用来补充过载控制算法,从而防止拒绝服务攻击,因为它对离开过程的减速进行极迅速反应。
参照图5,根据本公开的一个实施例,用于触发软件恢复系统和/或方法的可调谐方法包括接收对资源的请求501,确定对于对资源的请求的响应时间502,确定响应时间大于第一门限503,确定大于第一门限的响应时间的数量大于动态第二门限504,以及触发软件恢复系统和/或方法505。响应时间是顾客影响度量的一个实例,可使用其它度量,例如客户机所接收的错误数量504(例如,在接收错误504时向桶增加一个球,以及在接收有效响应时从桶中减去一个球)。
已经描述了动态软件恢复的系统及方法的实施例,要注意,本领域的技术人员可根据上述理论进行修改和变更。因此要理解,可在所公开的本发明的具体实施例中进行变更,它们属于所附权利要求所定义的本发明的范围和精神之内。按照专利法要求通过这种方式详细具体地描述了本发明,要求权益并预期受到专利证书保护的内容在所附权利要求中阐述。
权利要求
1.一种用于触发软件恢复系统或方法的计算机实现的方法,包括接收对资源的请求;确定对于所述对资源的请求的估算响应时间;确定所述估算响应时间大于第一门限;确定大于所述第一门限的估算响应时间的数量大于或等于动态第二门限;以及触发所述软件恢复系统或方法。
2.如权利要求1所述的计算机实现的方法,其特征在于,确定所述估算响应时间包括对多个响应时间抽样;以及确定平均响应时间,其中所述平均响应时间用作所述估算响应时间。
3.如权利要求1所述的计算机实现的方法,其特征在于,所述第一门限根据大于所述第一门限的估算响应时间的数量而变化,以及每当所述第一门限改变时确定所述动态第二门限。
4.如权利要求3所述的计算机实现的方法,其特征在于,还包括随着大于所述第一门限的响应时间的数量来增加所述第一门限。
5.如权利要求1所述的计算机实现的方法,其特征在于,所述动态第二门限为正整数。
6.一种用于触发软件恢复系统或方法的计算机实现的方法,包括接收对资源的请求;确定对于所述对资源的请求的响应时间;在确定所述响应时间大于第一门限时增加大于所述第一门限的响应时间的数量;在确定所述响应时间小于所述第一门限时减少大于所述第一门限的响应时间的数量;确定大于所述第一门限的响应时间的数量大于或等于动态第二门限;以及触发所述软件恢复系统或方法。
7.如权利要求6所述的计算机实现的方法,其特征在于,还包括在确定大于所述第一门限的响应时间的数量大于D时,把所述第一门限增加标准偏差的数量,其中,所述第一门限可增加K个标准偏差,以及K和D是相同或不同的正整数,所述第二门限为K乘以D;以及在增加所述第一门限时重新确定所述动态第二门限。
8.如权利要求6所述的计算机实现的方法,其特征在于,还包括在确定大于所述第一门限的响应时间的数量小于D时,把所述第一门限减少标准偏差的数量,其中,所述第一门限可减少K个标准偏差,以及K和D是相同或不同的正整数,所述第二门限为K乘以D;以及在减少所述第一门限时重新确定所述动态第二门限。
9.如权利要求6所述的计算机实现的方法,其特征在于,所述对资源的请求由客户机产生。
10.如权利要求6所述的计算机实现的方法,其特征在于,所述对资源的请求由负荷注入器产生。
11.如权利要求6所述的计算机实现的方法,其特征在于,还包括初始化,其中,大于所述第一门限的响应时间的数量设置为零,所述第一门限设置为最低等级,以及所述动态第二门限设置为最高等级。
12.一种用于区别请求突发与软件产品的性能降低的计算机实现的方法,包括接收多个对资源的请求;把所述多个请求中的每个与第一可变门限进行比较;改变所述第一可变门限来区别请求突发与软件产品的性能下降,以便处理所述多个请求;在改变所述第一可变门限时改变第二可变门限;以及在确定大于预定最高等级的可变门限的响应时间的数量大于或等于所述第二可变门限时,触发软件恢复系统或方法。
13.如权利要求12所述的计算机实现的方法,其特征在于,还包括确定使所述软件恢复被触发的各请求的源;以及确定使所述软件恢复被触发的预定数量的所述请求的共同源,其中,在多个计算机节点之中最接近所述共同源的计算机节点上触发所述软件恢复系统或方法。
14.如权利要求12所述的计算机实现的方法,其特征在于,还包括初始化,其中,大于所述第一可变门限的响应时间的数量设置为零,所述第一可变门限设置为最低等级,以及所述第二可变门限设置为最高等级。
全文摘要
一种用于触发软件恢复系统和/或方法的方法包括接收对资源的请求(501),通过采用抽样统计和平均以应用中心极限定理来确定对于对资源的请求的响应时间(502),确定估算响应时间大于第一门限(503),确定大于第一门限的响应时间的数量大于或等于动态第二门限(504),以及触发软件恢复系统和/或方法(505)。
文档编号G06F11/00GK1776634SQ20051012715
公开日2006年5月24日 申请日期2005年11月16日 优先权日2004年11月16日
发明者A·阿夫里策尔, A·B·邦迪 申请人:西门子共同研究公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1