一种可最大化任务吞吐量的服务器软件再生方法

文档序号:6471370阅读:180来源:国知局
专利名称:一种可最大化任务吞吐量的服务器软件再生方法
技术领域
本发明属于计算机领域软件再生方法,具体涉及一种可最大化任务吞 吐量的服务器软件再生方法。
背景技术
近十年来,"软件老化"(software aging)这一现象,即软件系统的 状态随着时间推移,其性能逐渐降低的情形,在IT界受到广泛关注。其 原因有诸如系统资源的耗损诸如内存泄漏、未释放锁、线程未终止、存储 空间的碎片、数据不纯、数值误差的累加等等。最终,它可能导致性能的 极端退化、安全度降低甚至瞬间的当机或崩溃。任何复杂的软件系统,特 别是需要长时间运行的软件系统,如web服务器,航空探测系统,军事监 控系统等,都有可能出现"老化"的现象。
最有效的对抗软件老化的方法是Huang等提出的软件再生(software rejuvenation)技术([l] Y. Huang, C. Kintala, N. Kolettis, and N.D. Fulton, Software rejuvenation: Analysis, module and applications. 1995)。软件再生通常包括间或地暂停软件运行,并通过 垃圾回收、磁盘碎片整理、清理内核和文件服务表等方法来"清理"它的 内部状态或者运行环境,然后重新启动软件。软件再生技术已被应用到各 种长途通信系统,web服务器系统,集群系统,以及其它的一些高可靠的 和高安全需求的系统。
应用软件再生技术有两种方法基于模型分析的方法和基于测量的方
法。第一种方法使用了系统的分析建模,假设了一些软件系统状态转移的 分布和相关参数,通过构建并分析随机模型来决定最佳的再生进度,使得
可靠性或可用性最大化,或者当机/崩溃的时间代价最小化。Huang等使用 了连续时间马尔科夫链(CTMC)来构造软件再生的模型([l] Y. Huang, C. Kintala, R Kolettis, and N. D. Fulton, Software rejuvenation.. Analysis, module and applications. 1995)。 Garg等考虑了软件老化的 状态无法被观测的情况,使用了马尔科夫随机再生Petri网(MRSPN)构 造软件再生模型([2] S.Garg, A.Puliafito, M. Telek, and K. Trivedi, Analysis of software rejuvenation using markov regenerative stochastic petri net, Proceedings of the sixth International symposium on software reliability engineering. 1995)。而Dohi等 则使用了半马尔科夫过程(SMP)闭式表达式来构造软件再生模型([3] T. Dohi, K. Goseva, and K. Trivedi, statistical non-parametric algorithms to estimate the optimal software rejuvenation schedule, Proceedings of pacific rim international symposium on dependable computing, 2000)。另一方面,基于测量的方法则通过收集和分析系统数 据在不同系统中探测和确认软件的老化,然后量化软件老化在系统资源中 的影响。目前主要有三种技术Garg等使用了基于时间而与工作负载无关 的软件老化估计([4] S. Garg, A. van Moorsel, K. Vaidyanathan, and K. Trivedi, A methodology for detection and estimation of software aging, Proceedings of the 9the international symposium on software reliability engineering, 1998); Vaidyanathan禾口 Trivedi贝拷虑了工 作负载 ([5] K. Vaidyanathan and K. S. Trivedi, A measurement—based model for estimation of resource exhaustion in operational software systems, Proceedings of 10th IEEE international symposium on software reliability engineering, 1999); Li等贝鞭用了 A謹/ARX 模型来验证web服务器上软件老化的出现([6] L. Li, K. Vaidyanathan, and K. Trivedi, An approach for estimation of software aging in a web server, Proceedings of the 2002 International symposium on empirical software engineering, 2002)。
现有的服务器软件再生技术及策略的目标在于提高系统的可用性(在 某一事件段内系统能够处理任务的概率),或提高系统的可靠性(系统从 开始运行状态到失效状态的平均时间),或减小系统的当机代价。但未考 虑到服务器系统处理大规模数据任务的效率,只检测和分析了系统的状态 转移分布参数。即当服务器软件系统处于严重老化的可用性状态时,为了 提高系统的可靠性和可用性,在原有技术及策略下,系统软件再生未必在 此时刻立即触发,但此时系统的处理任务数据的效率已经非常低下。因此, 在原有的技术及策略下,虽然系统的可用性或可靠性得到了提高,但系统 处理大规模数据任务的效率反而降低,完成任务所用的时间增加。

发明内容
本发明的目的在于检测和确定原有技术及策略所需的状态转移分布 参数的基础上,提供一种通过监控和确定系统运行的服务率变化参数,使 服务器系统处理大规模数据任务的效率最高,完成任务所需时间最短的可 最大化任务吞吐量的服务器软件再生方法。
为达到上述目的,本发明采用的技术方案是
1)首先由检测系统运行状态及相关参数的监控软件Valgrind检测并
记录Web服务器及其应用服务程序的运行参数;
2) 然后由用于确定最优的软件再生策略的触发器得到当平均服务率 最大时对应的软件再生触发时间间隔t。,即为最优再生时间点;
3) 最后由实施软件再生的软件再生系统判断最优再生时间点之前系 统是否已经失效,若应用软件系统在软件再生触发之前便己经失效
(failure),那么采用web服务器常规的修复措施进行修复(r印air),否 则,就在软件再生触发时间间隔t。时对系统进行软件再生处理,暂停软件' 运行,垃圾回收、磁盘碎片整理、清理内核和文件服务表,重新启动软件。
本发明的软件Valgrind所检测的Web服务器及其应用服务程序的运行 参数包括处于正常运行状态的平均时间u、软件修复所需要的平均时间 r、软件再生所需要的平均时间g、软件的失效概率分布F(t)、正常状态 下的平均服务率Smax、软件老化状态下的最小服务率Smin和服务率从 Smax下降到Smin所用时间a;再生策略的触发器采用SPNP优化分析工具 或Mathematica数学分析工具,目标为服务器任务吞吐量函数最大化,输 入为软件Valgrind所检测的Web服务器及其应用服务程序的运行参数(自 变量),输出为从失效状态算起,触发软件再生的时间间隔t。;软件再生 系统通过Valgrind软件及Linux/Unix系统脚本程序实现;系统必须是 web服务器系统并且其操作系统必须是Linux/Unk系统。
为了便于说明问题,本发明先引进有关概念。
定义l:系统状态定义
1) 正常运行状态
2) 可能失效状态(老化状态)
3) 失效状态
4)软件再生状态
定义2:系统状态转移参数
1) 处于正常运行状态的平均时间U
2) 软件修复所需要的平均时间r
3) 软件再生所需要的平均时间g
4) 软件的失效概率分布F(t)
5) 从可能失效状态算起,触发软件再生的时间间隔t。 定义3:系统服务率参数
1) 正常状态下的平均服务率Smax
2) 软件老化状态下的最小服务率Smin
3) 服务率从Smax下降到Smin所用时间a,
本发明通过检测及确定系统状态转移参数和服务率变化参数,在软件 系统虽然能够继续运行但已处于非常严重的老化现象的情况下,经过最优 软件再生时间间隔,立即触发软件再生措施,以到达获得平均最大服务效 率和最短任务完成时间的目的。即通过Valgrind监控软件,监控web服 务器特定应用程序,监测系统相关参数(包括u, r, g, F(t) , Smax, Smin, a), 将参数保存为log日志文档,发送到最优再生策略触发器(Math Kernal 库),求出软件再生触发时间间隔t。,在时间点t。通过Valgrind软件及 Linux/Unix系统脚本程序进行暂停软件运行,垃圾回收、磁盘碎片整理、 清理内核和文件服务表等操作,然后重新启动软件。


图l是本发明的系统结构图2是本发明的系统控制流程图3是本发明运用数学库文件进行函数最优化的步骤; 图4是本发明软件再生措施的相关步骤。 下面结合附图和实施例对本发明做进一步说明。
具体实施例方式
参见图l,依照本发明的技术方案,该系统至少包括Web服务器及 其应用服务程序;监控软件,用于检测系统的运行状态及相关参数;触发 器,用于确定最优的软件再生策略;软件再生系统,用于实施软件再生。
应用软件系统,软件再生系统,最优策略触发器和监控软件均运行于 web服务器上,服务器操作系统是Linux/Unix,监控软件是Valgrind。监' 控软件可用Valgrind软件来监测各种系统参数。最优策略触发器可用 SPNP优化分析工具或Mathematica数学分析工具来确定软件再生触发时 间间隔t。。软件再生系统可用Valgrind软件及Linux/Unix系统脚本程序 来完成。
参照图2,首先进行步骤IO,运行web服务器和Valgrind软件,利 用Valgrind软件监控内存使用率,软件状态转移平均时间,软件服务率 等参数,将这些参数保存到log日志文本。然后进行步骤20,用' Mathematica或SPNP软件读取log日志文件,获取相关参数,然后仿真连 续时间状态下的系统平均服务率函数,求出当平均服务率最大时对应的软 件再生触发时间间隔t。即确定最佳再生时间点。然后进行步骤30,监测 web应用系统软件是否在软件再生触发之前便已经失效,如果应用软件系 统在软件再生触发之前便已经失效,那么采用web服务器常规的修复措施 进行修复,否则,就在软件再生触发时间间隔t。时对系统进行软件再生处 理,也就是步骤40。步骤40包括暂停软件运行,垃圾回收、磁盘碎片整' 理、清理内核和文件服务表,重新启动软件操作。
参照图3,运用数学库文件对目标函数(平均服务率)进行优化的过 程。步骤110读取log日志文件,获取相关参数(包括 u,r,g,F(t),Smax,Smin,a);步骤120,将获取的相关参数的值,赋给目标 函数,步骤2中平均服务吞吐量函数如下所示,u为处于正常运行状态的 平均时间,r软件修复(r印air)所需要的平均时间,g为软件再生, (rejuvenation)所需要的平均时间,F(t)为软件随时间的失效概率分布, Smax为系统正常状态下的平均服务率,Smin为软件老化状态下的最小服 务率,a为服务率从Smax下降到Smin所用时间;R(t。)的分母,第一项为 系统处于正常运行状态的平均时间,第二项为系统处于修复状态的平均时 间,第三项为系统处于再生状态的平均时间,第四项为系统处于老化状态 的平均时间;R(t。)的分子,第一项为软件处于正常运行状态的吞吐量,第 二项为软件处于老化状态时的服务吞吐量。
<formula>formula see original document page 10</formula>步骤130,仿真目标函数随软件再生触发时间间隔不同而产生的不同的平 均服务率,得到当平均服务率最大B寸对应的软件再生触发时间间隔t。,那 么t。便是最优的软件再生触发时间间隔或从软件老化状态起计时的最优, 软件再生触发时间点。
参照图4,其为本发明较佳实施例中,执行软件再生操作的过程。步 骤210,利用Valgrind软件暂停web应用软件系统;然后进行步骤220, 清理系统内存其中非法占用的内存的地址及空间大小由Valgrind监控 软件确定;然后进行步骤230,垃圾回收及磁盘碎片整理,这部分可调用 Linux/Unix系统自带的相关脚本程序来完成。然后进行步骤240,清理内 核及文件服务表中的冗余信息,这部分可由Valgrind软件来实现。
权利要求
1、一种可最大化任务吞吐量的服务器软件再生方法,其特征在于1)首先由检测系统运行状态及相关参数的监控软件Valgrind检测并记录Web服务器及其应用服务程序的运行参数;2)然后由用于确定最优的软件再生策略的触发器得到当平均服务率最大时对应的软件再生触发时间间隔t0,即为最优再生时间点;3)最后由实施软件再生的软件再生系统判断最优再生时间点之前系统是否已经失效,若应用软件系统在软件再生触发之前便已经失效(failure),那么采用web服务器常规的修复措施进行修复(repair),否则,就在软件再生触发时间间隔t0时对系统进行软件再生处理,暂停软件运行,垃圾回收、磁盘碎片整理、清理内核和文件服务表,重新启动软件。
2、 根据权利要求1所述的可最大化任务吞吐量的服务器软件再生方. 法,其特征在于软件Valgrind所检测的Web服务器及其应用服务程序的 运行参数包括处于正常运行状态的平均时间u、软件修复所需要的平均 时间r、软件再生所需要的平均时间g、软件的失效概率分布F(t)、正常 状态下的平均服务率Smax、软件老化状态下的最小服务率Smin和服务率 从Smax下降到Smin所用时间a。
3、 根据权利要求1所述的可最大化任务吞吐量的服务器软件再生方 法,其特征在于所说的再生策略的触发器采用SPNP优化分析工具或, Mathematica数学分析工具,目标为服务器任务吞吐量函数最大化,输入 为软件Valgrind所检测的Web服务器及其应用服务程序的运行参数(自 变量),输出为从失效状态算起,触发软件再生的时间间隔t。。
4、 根据权利要求1所述的可最大化任务吞吐量的服务器软件再生方 法,其特征在于所说的软件再生系统通过Valgrind软件及Linux/Unix 系统脚本程序实现。
5、 根据权利要求1所述的可最大化任务吞吐量的服务器软件再生方 法,其特征在于所说的系统必须是web服务器系统并且其操作系统必须 是Linux/Unix系统。
全文摘要
本发明提供一种可最大化任务吞吐量的服务器软件再生方法,包括Web服务器及其应用服务程序;监控软件,用于检测系统的运行状态及相关参数;触发器,用于确定最优的软件再生策略;软件再生系统,用于实施软件再生。首先通过监控软件检测系统的运行状态及相关参数,然后通过触发器确定使系统任务吞吐量达最大化的最优的软件再生时间间隔,然后在相应的时间点进行软件再生操作。
文档编号G06F11/36GK101387977SQ20081023202
公开日2009年3月18日 申请日期2008年10月30日 优先权日2008年10月30日
发明者宋擒豹, 龙 赵 申请人:西安交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1