CN101807167B - 一种实现软件抗衰的方法及系统 - Google Patents
一种实现软件抗衰的方法及系统 Download PDFInfo
- Publication number
- CN101807167B CN101807167B CN200910007623.0A CN200910007623A CN101807167B CN 101807167 B CN101807167 B CN 101807167B CN 200910007623 A CN200910007623 A CN 200910007623A CN 101807167 B CN101807167 B CN 101807167B
- Authority
- CN
- China
- Prior art keywords
- component
- time
- restarted
- list
- moving window
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种实现软件抗衰的方法,包括:将软件系统构件化,实现以构件组成软件系统;对软件系统的操作日志进行统计分析,确定待重启构件及待重启构件的重启时刻;在重启时刻重启待重启构件。本发明通过对软件系统进行构件化,软件抗衰中对构件进行重启,解决了基于时间的抗衰技术抗衰粒度较粗,对负载变化容忍性差的问题;本发明在实现上具有普适性,在执行抗衰的过程中,具有很低的抗衰成本,能够帮助应用软件的运营者减少系统意外停机时间,提高系统服务率,增加系统有效工作周期。
Description
技术领域
本发明涉及软件抗衰技术领域,尤其涉及一种实现软件抗衰的方法及系统。
背景技术
软件衰退是指在长期持续运行的软件系统中,因发生状态退化和性能降低,导致系统崩溃的现象。从软件工程学的角度,在软件的设计、开发和测试等阶段是无法消除软件衰退的,因此,软件衰退有其存在的必然性。
有鉴于此,有学者提出了“软件抗衰”概念,软件抗衰是一种前摄性、抢先式的容错技术。软件抗衰技术通过对软件系统进行部分重启或全部重启达到抗衰目的,这样方式虽然会使软件系统处于部分功能不可用乃至完全不可用的状态,且会造成额外开销,但相对于软件系统意外失效带来的损失仍然具有很大优越性,并且,执行抗衰操作所需的时间要远小于修复系统意外失效所需的时间,因此,软件抗衰技术能够提高软件系统的可靠性,降低系统损失。
目前,软件抗衰技术主要有两种:基于时间的抗衰技术和基于度量的抗衰技术。基于时间的抗衰技术是宏观层面的,并不关心具体哪些因素导致了软件衰退的发生;而基于度量的抗衰技术是微观层面的,它具体度量和估算可能引起软件衰退的各种因素及其变化趋势,如,究竟是CPU的占用还是内存泄漏或是进程表的问题引起软件衰退,并决定是否采取软件抗衰措施以及采取软件抗衰措施的时机。
但是,上述两种软件抗衰技术都有其自身的缺陷,基于时间的抗衰技术采用诸如马尔可夫模型、半马尔可夫模型或随机Petri网模型等数学工具对软件衰退的状态迁移过程建模,由此导致了抗衰粒度较粗,对系统负载变化的容忍性较差;基于度量的抗衰技术需要开发专门的监控Agent(代理),并且,实施监控会给软件系统带来额外的负载冲击,监控Agent仅能对有限的几种衰退因素进行监控,无法侦测出未知的衰退因素。
由于现有的软件抗衰技术存在上述诸多不足,对于大型应用系统,如,电信领域中的综合网管系统,该系统需要提供拓扑、告警、性能、配置、信令跟踪、安全、日志、策略管理和业务分析等种类繁多的功能,该类系统的用户对性能要求非常高,现有抗衰技术存在的诸多缺陷,显然无法满足此类系统的要求。
发明内容
本发明要解决的技术问题是提供一种实现软件抗衰的方法及系统,解决现有技术中抗衰粒度较粗的问题,细化软件抗衰粒度。
为解决上述技术问题,本发明的一种实现软件抗衰的方法,包括:
将软件系统构件化,实现以构件组成软件系统;
对软件系统的操作日志进行统计分析,确定待重启构件及待重启构件的重启时刻;
在重启时刻重启待重启构件。
进一步地,进行统计分析,确定待重启构件的具体过程包括:
将软件系统的操作日志按时间顺序划入不同的滑动窗口,形成滑动窗口序列;
从操作频率、操作时间开销和自动操作结果三个维度对滑动窗口序列中的操作日志进行统计分析,确定列入并保留在观测列表中的构件,记录观测列表中的构件进入观测列表的次数;
当观测列表中的某一构件进入观测列表的次数大于一指定的观测列表进入次数阈值时,则确定该构件为待重启构件。
进一步地,确定列入并保留在观测列表中的构件的过程包括:
当涉及某一构件的操作频率或操作时间开销在第一滑动窗口中高于操作频率阈值或操作时间开销阈值时,则将该构件列入观测列表中;如果该构件在下一个滑动窗口中的操作频率或操作时间开销大于在第一滑动窗口中的操作频率或操作时间开销,并且大于系统重启以来该构件在已完成操作日志分析的全部滑动窗口中的操作频率或操作时间开销的数学期望或者经验值时,则将该构件保留在观测列表中,并将其进入观测列表的次数加1;
当涉及某一构件的自动操作结果在第一滑动窗口中为失败时,则将该构件列入观测列表中;如果该构件在下一个滑动窗口中的自动操作结果仍为失败时,则将该构件保留在观测列表中,并将其进入观测列表的次数加1。
进一步地,确定待重启构件的重启时刻的过程包括:
对于因操作频率或操作时间开销被列入观测列表的待重启构件,采用最小二乘法,将滑动窗口的序列号和对应滑动窗口中的操作频率或操作时间开销作为最小二乘法的输入,预计操作频率或操作时间开销的变化趋势,从变化趋势中查找使待重启构件陷入衰退态的操作频率值或操作时间开销,根据该操作频率值或操作时间开销所在的滑动窗口确定待重启构件陷入衰退态的时间,将该时间作为重启时刻;
对于因自动操作失败而被列入观测列表的待重启构件,将重启时刻设置为执行下一次构件重启操作的时间。
进一步地,确定待重启构件及待重启构件的重启时刻后,根据重启时刻相同的待重启构件的依附关系构造重启链,在重启时刻按照重启链依次对待重启构件进行重启。
进一步地,一种实现软件抗衰的系统,包括:依次连接的操作日志数据库、日志分析模块和重启守护模块,其中:
操作日志数据库用于从由构件组成的软件系统中读取并保存操作日志;
日志分析模块用于从操作日志数据库中读取操作日志,对所读取的操作日志进行统计分析,确定待重启构件及待重启构件的重启时刻;
重启守护模块用于在重启时刻重启待重启构件。
进一步地,日志分析模块进行统计分析,确定待重启构件的具体过程包括:
将软件系统的操作日志按时间顺序划入不同的滑动窗口,形成滑动窗口序列;
从操作频率、操作时间开销和自动操作结果三个维度对滑动窗口序列中的操作日志进行统计分析,确定列入并保留在观测列表中的构件,记录观测列表中的构件进入观测列表的次数;
当观测列表中的某一构件进入观测列表的次数大于一指定的观测列表进入次数阈值时,则确定该构件为待重启构件。
进一步地,日志分析模块确定列入并保留在观测列表中的构件的过程包括:
当涉及某一构件的操作频率或操作时间开销在第一滑动窗口中高于操作频率阈值或操作时间开销阈值时,则将该构件列入观测列表中;如果该构件在下一个滑动窗口中的操作频率或操作时间开销大于在第一滑动窗口中的操作频率或操作时间开销,并且大于系统重启以来该构件在已完成操作日志分析的全部滑动窗口中的操作频率或操作时间开销的数学期望或者经验值时,则将该构件保留在观测列表中,并将其进入观测列表的次数加1;
当涉及某一构件的自动操作结果在第一滑动窗口中为失败时,则将该构件列入观测列表中;如果该构件在下一个滑动窗口中的自动操作结果仍为失败时,则将该构件保留在观测列表中,并将其进入观测列表的次数加1。
进一步地,操作日志分析模块确定待重启构件的重启时刻的过程包括:
对于因操作频率或操作时间开销被列入观测列表的待重启构件,采用最小二乘法,将滑动窗口的序列号和对应滑动窗口中的操作频率或操作时间开销作为最小二乘法的输入,预计操作频率或操作时间开销的变化趋势,从变化趋势中查找使待重启构件陷入衰退态的操作频率值或操作时间开销,根据该操作频率值或操作时间开销所在的滑动窗口确定待重启构件陷入衰退态的时间,将该时间作为重启时刻;
对于因自动操作失败而被列入观测列表的待重启构件,将重启时刻设置为执行下一次构件重启操作的时间。
进一步地,重启守护模块重启待重启构件时,根据重启时刻相同的待重启构件的依附关系构造重启链,在重启时刻按照重启链依次对待重启构件进行重启。
综上所述,本发明具有如下有益效果:
通过对软件系统进行构件化,软件抗衰中对构件进行重启,解决了基于时间的抗衰技术抗衰粒度较粗,对负载变化容忍性差的问题;
通过统计分析软件系统的操作日志,实现对软件系统各构件的性能监控,避免了基于度量的抗衰技术需要开发监控Agent,减少了因监控Agent运行给软件系统带来的额外负载;并且,
通过对操作日志进行趋势分析,不但考虑了当前的操作情况,而且还回溯了历史操作信息,可以避免因为瞬时异常而导致构件重启的误判操作。
本发明在实现上具有普适性,在执行抗衰的过程中,具有很低的抗衰成本,能够帮助应用软件的运营者减少系统意外停机时间,提高系统服务率,增加系统有效工作周期。
附图说明
图1为本发明软件抗衰方法的流程图;
图2为本发明软件抗衰系统的架构图。
具体实施方式
下面结合附图对本发明的具体实施方式进行说明:
图1所示为本发明实现软件抗衰的方法,包括:
101:将软件系统构件化;
本实施例中,将软件系统构件化是实现抗衰粒度细化的关键。在基于构件的软件系统中,抗衰粒度可划分为三个层次:(1)系统,软件抗衰时,将整个软件系统作为重启对象,即,对软件系统中的全部构件进行重启;(2)功能组,软件抗衰时,将软件系统的某一功能组作为重启对象,即,对功能组所包含的构建进行重启;(3)构件,软件抗衰时,将软件系统的某一功能(或者功能的一部分)作为重启对象,即,对某一构件进行重启。抗衰粒度细化的程度取决于构件的粒度。
具体实施中,可采用JMX(Java Management Extensions,即Java管理扩展)技术完成对软件系统的构件化。
JMX是J2EE(Java 2 Platform Enterprise Edition,Java2平台企业版)体系架构中为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活地开发无缝集成的系统、网络和服务管理应用。利用JMX可以方便地将软件系统的各个功能模块包装成可管理的、相对独立的、相互之间有严格边界的构件系统。每一个构件都遵循JMX规范的生命周期方法(创建、启动、停止和销毁),从而为软件系统的微重启奠定了实现的基础。
102:读取软件系统的操作日志;
通常软件系统中都设置有独立的日志模块,由其提供统一的日志接口,软件系统的各功能模块调用日志接口,在日志模块中记录各自的操作,因此,日志模块中记录有丰富的系统操作信息即操作日志,可作为一个强大的性能检测数据源。系统操作信息包括:操作发生的时间、频率、操作结束的时间、操作类型、操作的重要级别、执行操作的构件、操作涉及的管理对象实例和操作结果等。为方便管理,可将系统的操作信息组织为树形结构,形成操作树模型。
操作日志通常存放在软件系统的数据库中,读取操作日志时,可以使用数据库工具将软件系统的操作日志定期转移到抗衰系统的操作日志数据库中,以免进行抗衰分析时对软件系统造成性能冲击。如果操作日志以文本形式保存,仍可以采用读取工具定期将操作日志文本导入到抗衰系统的操作日志数据库中。
103:按时间顺序将操作日志划归不同的滑动窗口,形成滑动窗口序列,对初始滑动窗口中的操作日志进行统计分析,将操作异常的构件加入观测列表Lw中;
将相同时间的系统操作所对应的操作日志划分入相同的滑动窗口,形成滑动窗口序列Wi,i=1,2,...n。对初始窗口W1中的构件的操作日志,从操作频率、操作结果和操作时间开销三个维度上进行统计,将操作异常可能陷入衰退的构件加入观测列表Lw中。具体方法如下:
(1)如果在滑动窗口中,与某个构件相关的操作的发生频率高于一给定的操作频率阈值,则将该构件列入观测列表Lw中,并记录操作频率O。
(2)如果在滑动窗口中,与某个构件相关的自动操作的操作结果为失败,则将该构件也列入观测列表Lw中。当操作者对构件发起的主动操作的操作结果为失败时,不将该构件列入观测列表中,因为可能存在操作者的操作失误,而非构件的性能问题。
(3)如果在滑动窗口中,某个构件的操作时间开销TCOS高于一给定操作时间开销阈值,则将该构件也列入观测列表Lw中,并记录操作时间开销TCOS。操作时间开销TCOS=操作结束的时间-操作发生的时间。
在观测列表中还对每个构件记录滑动窗口的序列号和其被列入观测列表Lw的次数T。
104:对下一滑动窗口中的操作日志进行上述三个维度的统计分析,根据统计结果,将操作异常的构件加入观测列表Lw中,同时决定是否将已加入观测列表Lw的构件移出观测列表Lw;
对于观测列表中的构件,如,构件A因操作频率过高而进入观测列表,在当前滑动窗口中,继续统计构件A的操作频率,如果构件A在当前滑动窗口的操作频率Oi+1大于在前一滑动窗口的操作频率Oi,并且大于系统重启以来构件A在已完成操作日志分析的全部滑动窗口中的操作频率的数学期望E(或者经验值),则将构件A继续保留在观测列表中,记录构件A在当前滑动窗口中的操作频率Oi+1并将其进入观测列表的次数T加1;否则,将构件A从观测列表中移除,清除构件A的相关记录。
如,构件A因某一操作的操作时间开销过大被列入观测列表,在当前滑动窗口中继续统计构件A的该操作时间开销TCOSi+1,如果构件A在当前滑动窗口的操作时间开销TCOSi+1>在前一滑动窗口的操作时间开销TCOSi,并且大于系统重启以来构件A在已完成操作日志分析的全部滑动窗口中的时间开销的数学期望E(或者经验值),则将构件A继续留在观测列表中,记录构件A在当前滑动窗口中的操作时间开销TCOSi+1并将其进入观测列表的次数T加1;否则,将构件A从观测列表Lw中移除,清除构件A的相关记录。
如,构件A因自动操作失败而被列入观测列表Lw,在当前滑动窗口中继续观测构件A是否仍有自动操作失败发生,如果有,则将构件A进入观测列表的次数T加1;否则,将构件A从观测列表Lw中移除,清除构件A的相关记录。
105:判断观测列表中是否存在待重启构件(需要重启的构件),如果存在,则执行步骤106;否则,跳转到步骤104;
在观测列表中,将进入观测列表的次数T大于观测列表进入次数阈值的构件作为待重启构件,判断是否存在待重启构件时,可判断是否存在进入观测列表的次数T大于观测列表进入次数阈值的构件。
106:确定待重启构件的重启时刻,按照重启时刻将待重启构件加入重启列表;
对于因操作频率过高而被列入观测列表的待重启构件,采用最小二乘法,将滑动窗口的序列号和待重启构件在滑动窗口中的操作频率作为最小二乘法的输入,估计该构件操作频率的变化趋势,从变化趋势中查找到令待重启构件陷入衰退态的操作频率值,根据该操作频率值所在的滑动窗口确定待重启构件陷入衰退态的时间,将该时间作为待重启构件的重启时刻。由于滑动窗口序列是按照时间顺序划分的,因此,可以根据操作频率值所在的滑动窗口确定操作频率值的发生时间。
对于因某一操作的操作时间开销过大被列入观测列表的待重启构件,仍然采用最小二乘法,估计待重启构件的操作时间开销的变化趋势,确定构件陷入衰退态的时间,将该时间作为构件的重启时刻。
对于因自动操作失败而被列入观测列表的待重启构件,当自动操作失败的次数超过阀值时,也就是,其进入观测列表的次数大于观测列表进入次数阈值时,将该构件加入重启列表,并将重启时刻设置为最近将要被执行的时间,即执行下一次重启操作的时间。
107:根据重启列表中重启时刻相同的构件的依附关系构造重启链,按照重启链在重启时刻依次重启构件;
以一定的时间周期,对构件重启列表进行扫描,找出在下一个时刻需要重启的所有构件,根据构件的部署信息计算出构件之间的依赖关系,进而构造出重启链,按照重启链依次重启构件,刷新进入衰退态的构件的状态,实现系统的抗衰。
本发明中由于只涉及部分构件的重启,故称之为微重启。之所以需要构造重启链,是因为类似综合网管一类的大型的应用软件必然包含着数以百计的构件,这些构件之间存在着复杂的依赖关系,只有通过构造重启链才能实现构件的安全重启。
108:保存重启日志,并跳转到步骤104,直到完成对滑动窗口序列的分析,根据重启日志,优化系统。
每一次微重启后,在抗衰系统中保存相应的重启日志,在抗衰系统运行一段时期后,用户可以通过分析重启日志,查找影响软件系统稳定运行的构件,对这些构件进行分析,找出缺陷所在,以延长构件的重启周期,从而实现系统的局部优化。递归此过程,将软件系统的优化范围从点到面,从而实现系统的整体优化。
本实施例中所涉及的阈值均根据实际网络的运营场景和网络规模确定,在此不一一例举。
图2所示为本发明实现软件抗衰的系统,包括:依次连接的操作日志数据库、日志分析模块、重启守护模块和重启日志数据库,操作日志数据库还与软件系统存储操作日志的数据库连接,重启守护模块还与软件系统的构件生命周期接口连接,其中:
操作日志数据库用于从软件系统存储操作日志的数据库读取并保存软件系统的操作日志;
日志分析模块用于从操作日志数据库中读取操作日志,将相同时间的系统操作对应的操作日志划分入相同的滑动窗口,形成滑动窗口序列Wi,i=1,2,...n。对初始窗口W1中的构件的操作日志,从操作频率、操作结果和操作时间开销三个维度上进行统计,将操作异常可能陷入衰退的构件加入观测列表Lw中。具体方法如下:
(1)日志分析模块如果判断在滑动窗口中,与某个构件相关的操作的发生频率高于一给定的操作频率阈值,则将该构件列入观测列表Lw中,并记录操作频率O。
(2)如果判断在滑动窗口中,与某个构件相关的自动操作的操作结果为失败,则将该构件也列入观测列表Lw中。当操作者对构件发起的主动操作的操作结果为失败时,不将该构件列入观测列表中,因为可能存在操作者的操作失误,而非构件的性能问题。
(3)如果判断在滑动窗口中,某个构件的操作时间开销TCOS高于一给定操作时间开销阈值,则将该构件也列入观测列表Lw中,并记录操作时间开销TCOS。操作时间开销TCOS=操作结束的时间-操作发生的时间。
日志分析模块还在观测列表中对每个构件记录滑动窗口的序列号和其被列入观测列表Lw的次数T。
完成对初始滑动窗口的统计分析后,日志分析模块继续对下一滑动窗口中的操作日志进行上述三个维度的统计分析,根据统计结果,将操作异常的构件加入观测列表Lw中,同时决定是否将已进入观测列表Lw的构件移出观测列表Lw;
对于观测列表中的构件,如,构件A因操作频率过高而进入观测列表,日志分析模块在当前滑动窗口中,继续统计构件A的操作频率,如果构件A在当前滑动窗口的操作频率Oi+1大于在前一滑动窗口的操作频率Oi,并且大于系统重启以来构件A在已完成操作日志分析的全部滑动窗口中的操作频率的数学期望E(或者经验值),则将构件A继续保留在观测列表中,记录构件A在当前滑动窗口中的操作频率Oi+1并将其进入观测列表的次数T加1;否则,将构件A从观测列表中移除,清除构件A的相关记录。
如,构件A因某一操作的操作时间开销过大被列入观测列表,在当前滑动窗口中继续统计构件A的该操作时间开销TCOSi+1,如果构件A在当前滑动窗口的操作时间开销TCOSi+1>在前一滑动窗口的操作时间开销TCOSi,并且大于系统重启以来构件A在已完成操作日志分析的全部滑动窗口中的时间开销的数学期望E(或者经验值),则将构件A继续留在观测列表中,记录构件A在当前滑动窗口中的操作时间开销TCOSi+1并将其进入观测列表的次数T加1;否则,将构件A从观测列表Lw中移除,清除构件A的相关记录。
如,构件A因自动操作失败而被列入观测列表Lw,在当前滑动窗口中继续观测构件A是否仍有自动操作失败发生,如果有,则将构件A进入观测列表的次数T加1;否则,将构件A从观测列表Lw中移除,清除构件A的相关记录。
日志分析模块还用于判断观测列表中是否存在待重启构件(需要重启的构件),如果存在,则确定待重启构件的重启时刻,按照重启时刻将待重启构件加入重启列表;否则,继续对下一滑动窗口进行统计分析,直到完成对滑动窗口序列的统计分析;
日志分析模块通过查找是否存在进入观测列表的次数T大于观测列表进入次数阈值的构件,判断观测列表中是否存在待重启构件。
对于因操作频率过高而被列入观测列表的待重启构件,日志分析模块采用最小二乘法,将滑动窗口的序列号和待重启构件在滑动窗口中的操作频率作为最小二乘法的输入,估计该构件操作频率的变化趋势,从变化趋势中查找到令待重启构件陷入衰退态的操作频率值,根据该操作频率值所在的滑动窗口确定待重启构件陷入衰退态的时间,将该时间作为待重启构件的重启时刻。由于滑动窗口序列是按照时间顺序划分的,因此,可以根据操作频率值所在的滑动窗口确定操作频率值的发生时间。
对于因某一操作的操作时间开销过大被列入观测列表的待重启构件,仍然采用最小二乘法,估计待重启构件的操作时间开销的变化趋势,确定构件陷入衰退态的时间,将该时间作为构件的重启时刻。
对于因自动操作失败而被列入观测列表的待重启构件,当自动操作失败的次数超过阀值时,也就是,其进入观测列表的次数大于观测列表进入次数阈值时,将该构件加入重启列表,并将重启时刻设置为最近将要被执行的时间。
重启守护模块用于以一定的时间周期,启动一个线程对构件重启列表进行扫描,找出在下一个时刻需要重启的所有构件,根据构件的部署信息计算出构件之间的依赖关系,进而构造出重启链,按照重启链依次重启构件,刷新进入衰退态的构件的状态,实现系统的抗衰。
重启日志数据库用于保存重启日志,为用户提供重启日志,优化系统。
本发明的方法及系统适用于如电信领域的综合网管系统等各种大型软件系统,具有普适性。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种实现软件抗衰的方法,包括:
将软件系统构件化,实现以构件组成所述软件系统;
对所述软件系统的操作日志进行统计分析,确定待重启构件及所述待重启构件的重启时刻;
在所述重启时刻重启所述待重启构件;
其中,所述进行统计分析,确定待重启构件的具体过程包括:
将所述软件系统的操作日志按时间顺序划入不同的滑动窗口,形成滑动窗口序列;
从操作频率、操作时间开销和自动操作结果三个维度对滑动窗口序列中的操作日志进行统计分析,确定列入并保留在观测列表中的构件,记录观测列表中的构件进入观测列表的次数;
当观测列表中的某一构件进入观测列表的次数大于一指定的观测列表进入次数阈值时,则确定该构件为待重启构件;
所述确定列入并保留在观测列表中的构件的过程包括:
当涉及某一构件的操作频率或操作时间开销在第一滑动窗口中高于操作频率阈值或操作时间开销阈值时,则将该构件列入观测列表中;如果该构件在下一个滑动窗口中的操作频率或操作时间开销大于在第一滑动窗口中的操作频率或操作时间开销,并且大于系统重启以来该构件在已完成操作日志分析的全部滑动窗口中的操作频率或操作时间开销的数学期望或者经验值时,则将该构件保留在观测列表中,并将其进入观测列表的次数加1;
当涉及某一构件的自动操作结果在第一滑动窗口中为失败时,则将该构件列入观测列表中;如果该构件在下一个滑动窗口中的自动操作结果仍为失败时,则将该构件保留在观测列表中,并将其进入观测列表的次数加1。
2.如权利要求1所述的方法,其特征在于,所述确定所述待重启构件的重启时刻的过程包括:
对于因操作频率或操作时间开销被列入观测列表的待重启构件,采用最小二乘法,将滑动窗口的序列号和对应滑动窗口中的操作频率或操作时间开销作为最小二乘法的输入,预计操作频率或操作时间开销的变化趋势,从变化趋势中查找使待重启构件陷入衰退态的操作频率值或操作时间开销,根据该操作频率值或操作时间开销所在的滑动窗口确定待重启构件陷入衰退态的时间,将该时间作为重启时刻;
对于因自动操作失败而被列入观测列表的待重启构件,将重启时刻设置为执行下一次构件重启操作的时间。
3.如权利要求2所述的方法,其特征在于,
确定待重启构件及所述待重启构件的重启时刻后,根据重启时刻相同的待重启构件的依附关系构造重启链,在重启时刻按照重启链依次对待重启构件进行重启。
4.一种实现软件抗衰的系统,其特征在于,包括:依次连接的操作日志数据库、日志分析模块和重启守护模块,其中:
所述操作日志数据库用于从由构件组成的软件系统中读取并保存操作日志;
所述日志分析模块用于从所述操作日志数据库中读取所述操作日志,对所读取的操作日志进行统计分析,确定待重启构件及所述待重启构件的重启时刻;
所述重启守护模块用于在所述重启时刻重启所述待重启构件;
其中,所述日志分析模块进行统计分析,确定待重启构件的具体过程包括:
将所述软件系统的操作日志按时间顺序划入不同的滑动窗口,形成滑动窗口序列;
从操作频率、操作时间开销和自动操作结果三个维度对滑动窗口序列中的操作日志进行统计分析,确定列入并保留在观测列表中的构件,记录观测列表中的构件进入观测列表的次数;
当观测列表中的某一构件进入观测列表的次数大于一指定的观测列表进入次数阈值时,则确定该构件为待重启构件;
所述日志分析模块确定列入并保留在观测列表中的构件的过程包括:
当涉及某一构件的操作频率或操作时间开销在第一滑动窗口中高于操作频率阈值或操作时间开销阈值时,则将该构件列入观测列表中;如果该构件在下一个滑动窗口中的操作频率或操作时间开销大于在第一滑动窗口中的操作频率或操作时间开销,并且大于系统重启以来该构件在已完成操作日志分析的全部滑动窗口中的操作频率或操作时间开销的数学期望或者经验值时,则将该构件保留在观测列表中,并将其进入观测列表的次数加1;
当涉及某一构件的自动操作结果在第一滑动窗口中为失败时,则将该构件列入观测列表中;如果该构件在下一个滑动窗口中的自动操作结果仍为失败时,则将该构件保留在观测列表中,并将其进入观测列表的次数加1。
5.如权利要求4所述的系统,其特征在于,所述操作日志分析模块确定所述待重启构件的重启时刻的过程包括:
对于因操作频率或操作时间开销被列入观测列表的待重启构件,采用最小二乘法,将滑动窗口的序列号和对应滑动窗口中的操作频率或操作时间开销作为最小二乘法的输入,预计操作频率或操作时间开销的变化趋势,从变化趋势中查找使待重启构件陷入衰退态的操作频率值或操作时间开销,根据该操作频率值或操作时间开销所在的滑动窗口确定待重启构件陷入衰退态的时间,将该时间作为重启时刻;
对于因自动操作失败而被列入观测列表的待重启构件,将重启时刻设置为执行下一次构件重启操作的时间。
6.如权利要求5所述的系统,其特征在于,重启守护模块重启所述待重启构件时,根据所述重启时刻相同的待重启构件的依附关系构造重启链,在所述重启时刻按照重启链依次对待重启构件进行重启。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910007623.0A CN101807167B (zh) | 2009-02-12 | 2009-02-12 | 一种实现软件抗衰的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910007623.0A CN101807167B (zh) | 2009-02-12 | 2009-02-12 | 一种实现软件抗衰的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101807167A CN101807167A (zh) | 2010-08-18 |
CN101807167B true CN101807167B (zh) | 2015-05-20 |
Family
ID=42608969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910007623.0A Expired - Fee Related CN101807167B (zh) | 2009-02-12 | 2009-02-12 | 一种实现软件抗衰的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101807167B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186464B (zh) * | 2011-12-31 | 2015-11-18 | 深圳市金蝶友商电子商务服务有限公司 | 一种软件服务的监督方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6629266B1 (en) * | 1999-11-17 | 2003-09-30 | International Business Machines Corporation | Method and system for transparent symptom-based selective software rejuvenation |
US7490073B1 (en) * | 2004-12-21 | 2009-02-10 | Zenprise, Inc. | Systems and methods for encoding knowledge for automated management of software application deployments |
-
2009
- 2009-02-12 CN CN200910007623.0A patent/CN101807167B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6629266B1 (en) * | 1999-11-17 | 2003-09-30 | International Business Machines Corporation | Method and system for transparent symptom-based selective software rejuvenation |
US7490073B1 (en) * | 2004-12-21 | 2009-02-10 | Zenprise, Inc. | Systems and methods for encoding knowledge for automated management of software application deployments |
Non-Patent Citations (1)
Title |
---|
《一种适用于构件系统的软件抗衰技术框架》;郑贤福 等;《计算机科学》;20061231;第33卷(第8期);第275页至第277页、第289页 * |
Also Published As
Publication number | Publication date |
---|---|
CN101807167A (zh) | 2010-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Farshchi et al. | Experience report: Anomaly detection of cloud application operations using log and cloud metric correlation analysis | |
Dohi et al. | Statistical non-parametric algorithms to estimate the optimal software rejuvenation schedule | |
US7349826B2 (en) | Causal ladder mechanism for proactive problem determination, avoidance and recovery | |
US8516499B2 (en) | Assistance in performing action responsive to detected event | |
CN101883003A (zh) | 一种计算机操作系统强制运行方法 | |
CN110442498B (zh) | 异常数据节点的定位方法、装置、存储介质及计算机设备 | |
US20130226526A1 (en) | Automated Performance Data Management and Collection | |
CN111881014B (zh) | 一种系统测试方法、装置、存储介质及电子设备 | |
CN101399883B (zh) | 异常监测管理方法及装置 | |
CN110096437A (zh) | 微服务架构的测试方法及相关产品 | |
CN101197621A (zh) | 一种对网管系统故障进行远程诊断定位的方法及其系统 | |
Melo et al. | Comparative analysis of migration-based rejuvenation schedules on cloud availability | |
CN113946499A (zh) | 一种微服务链路跟踪及性能分析方法、系统、设备及应用 | |
CN110659147B (zh) | 一种基于模块自检行为的自修复方法和系统 | |
CN109474470A (zh) | 一种自监控方法和装置 | |
US10474518B1 (en) | Obtaining historical information in a device core dump | |
Xu et al. | Availability Modeling and Analysis of a Single-Server Virtualized System with Rejuvenation. | |
CN106899436A (zh) | 一种云平台故障预测诊断系统 | |
CN101807167B (zh) | 一种实现软件抗衰的方法及系统 | |
CN102521132A (zh) | 实时输出日志的自动化测试方法和系统 | |
Jiang et al. | Time and prediction based software rejuvenation policy | |
CN109271270A (zh) | 存储系统中底层硬件的故障排除方法、系统及相关装置 | |
CN108733567A (zh) | 软件资源泄露情况的监测方法及系统 | |
Ning et al. | Multi-granularity software rejuvenation policy based on continuous time Markov chain | |
CN105204975A (zh) | 基于JavaEE体系架构的性能监控系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150520 Termination date: 20180212 |