首页> 中国专利> 针对两层软件老化现象的基于维护费用的全局优化方法

针对两层软件老化现象的基于维护费用的全局优化方法

摘要

本发明公开了针对两层软件老化现象的基于维护费用的全局优化方法。包括以下步骤:监测器监测应用层在时间间隔(τ·(i-1),τ·i]内消耗的内存Xi和操作系统层在时间间隔(τ·(i-1),τ·i]内消耗的内存Yi;基于更新过程构建两层软件老化分析模型;根据两层软件老化分析模型,得到操作系统层的警戒阈值的最佳值、操作系统层的疲劳阈值的最佳值,和应用层的警戒阈值的最佳值;得到两层软件系统可用性最大值。本发明提出了针对两层软件的再生策略方法,能够有效提高整体的可用性。

著录项

  • 公开/公告号CN104536894A

    专利类型发明专利

  • 公开/公告日2015-04-22

    原文格式PDF

  • 申请/专利权人 哈尔滨工程大学;

    申请/专利号CN201510009756.7

  • 申请日2015-01-09

  • 分类号G06F11/36(20060101);

  • 代理机构

  • 代理人

  • 地址 150001 黑龙江省哈尔滨市南岗区南通大街145号哈尔滨工程大学科技处知识产权办公室

  • 入库时间 2023-12-18 08:20:29

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-08-04

    授权

    授权

  • 2015-05-20

    实质审查的生效 IPC(主分类):G06F11/36 申请日:20150109

    实质审查的生效

  • 2015-04-22

    公开

    公开

说明书

技术领域

本发明属于软件性能测试领域,尤其涉及能够最小化维护费用的,针对两层软件老化现 象的基于维护费用的全局优化方法。

背景技术

软件老化现象是软件长时间运行时,由于计算机资源的消耗而造成软件性能逐渐下降的 现象。这种现象可能造成的后果是严重的,它不仅影响普通服务器软件的运行,并且可能对 要求高可靠性的关键领域,如商业、金融、科技和军事等领域中使用的软件造成影响,在安 全性要求极高的软件环境中,软件老化现象甚至可能造成人员伤害甚至名誉损失。针对这种 现象,学者提出了一种称作“软件再生(Software Rejuvenation)”的方法,也就是通过定期地 重新启动服务器软件或者整个计算机系统,重新初始化服务器的内部状态,释放可能造成老 化的被占用系统资源,使得软件的状态和性能得到恢复,从而避免或减少老化造成的严重性 能下降甚至软件系统宕机造成的损失。在软件再生方法的应用当中,再生时间间隔的确定是 一个非常重要的问题,若再生时间间隔选择过长,则可能不能避免软件老化现象造成的危害, 若再生时间间隔选择过短,则主动再生行为本身为软件系统带来的开销就可能过大,造成软 件实际使用效率的降低。通常,软件再生时间间隔会选择一个适当短于软件预期寿命的值, 因此,对软件寿命的预测和估计一直是软件老化领域相关研究中的一个焦点。为了估计软件 寿命的概率分布,可以对实际软件系统进行充分地抽象,利用马尔科夫模型、半马尔科夫模 型、随机回报网、随机Petri网等数学模型对系统进行建模,从而抽象出软件寿命的特征; 也可以研究真实的软件系统,利用各种性能参数的检测手段设计实验,从真实的实验中采集 系统性能参数的各种变化数据,然后利用统计方法或者人工智能算法等,描述并且预测软件 的寿命。然而,对真实软件系统进行测试存在一大障碍,通常情况下服务器软件都被设计成 连续不间断地运行提供服务,即使存在老化现象,软件的寿命也很长,也就难以通过实验获 得软件失效时间的样本。针对这种现象,学者提出了一种称为“加速老化测试(ADT)”和“加 速寿命测试(ALT)”技术,也就是利用加速寿命测试理论,通过耗时较短的加速寿命测试得到 加速情况下软件的寿命数据,计算非加速情况下软件的真实寿命。

随着系统软件及其运行环境的复杂性不断提高,系统软件的老化不单纯仅仅由应用层或 操作系统层造成的,任何一层的老化都会造成整个运行服务的崩溃,而传统的测试方法都只 受限于一层。本发明构建两层软件老化分析模型,计算系统老化阈值水平,利用传统工业领 域中广泛应用的加速寿命测试理论,部署和实施针对两层软件老化现象的加速寿命测试实验, 调整监测器监测内存变化的时间间隔,计算在每一个监测器监测时间间隔下非加速软件的真 实寿命及其他参数,得到正常情况下系统软件可用性的概率分布。

不少专家学者对软件老化进行了研究,譬如Yun-Fei Jia等人[2008]研究web服务器中的 老化现象,他们用一台Apache服务器和多个客户端搭建了一个实验平台,运行多组实验,收 集在每组实验中服务器上系统资源使用量的相关信息,他们观察到软件老化过程是非线性的 和混乱的;Cotroneo等人[2010]研究了Linux内核代码,分析了工作负载参数,通过高亮显 示与老化趋势有关联的子系统,为软件老化的潜在来源提供了证明。但是他们很少针对两层 软件的老化进行研究,然而整个系统的可用性不仅仅只涉及到应用层(操作系统层)的可用 性,它与上述两者都有密切的关系,任何一层软件的失效都会导致系统是不可用的。

发明内容

本发明的目的是提供一种能够最小化维护费用的,针对两层软件老化现象的基于维护费 用的全局优化方法。

本发明是通过以下技术方案实现的:

针对两层软件老化现象的基于维护费用的全局优化方法,其特征在于,包括以下几个步 骤:

步骤一:记录应用层在初始健康状态时可利用内存Atotal和操作系统层在初始健康状态时可利 用内存Ototal,监测器监测应用层在时间间隔(τ·(i-1),τ·i]内消耗的内存Xi和操作系统层在时 间间隔(τ·(i-1),τ·i]内消耗的内存Yi,其中τ为监测时间间隔,i为监测总次数;

步骤二:基于更新过程构建两层软件老化分析模型:

A(k·τ)=Atotal-Σi=1kXi

O(k·τ)=Ototal-Σi=1kYi

其中,A(k·τ)为监测器第k次监测时应用层中可用的内存,O(k·τ)为监测器第k次监测时操 作系统层中可用的内存;

步骤三:根据两层软件老化分析模型,得到操作系统层的警戒阈值Ored的最佳值、操作系统 层的疲劳阈值Oblue的最佳值,和应用层的警戒阈值Ared的最佳值;

操作系统层的警戒阈值Ored的最佳值为:

Ored*={Ored:P[YK+1>Ored|O(K·τ)=Ored]=cOp·τ(Ototal-OredE(Y)·τ+E(Δ))((Ototal-OredE(Y)+1)·τ+E(Δ))cOr((Ototal-OredE(Y)+1)·τ+E(Δ))-cOp((Ototal-OredE(Y)+1)·τ+E(Δ))}

其中,为操作系统层的警戒阈值Ored的最佳值,在时间(K+1)·τ之前操作系统崩溃的概率 α为:

α=P[YK+1>Ored|O(K·τ)=Ored]=cOp·τ(K·τ+Δ)((K+1)·τ+Δ)cOr(K+1)·τ+Δ-cOp(K+1)·τ+Δ,

操作系统层的疲劳阈值Oblue的最佳值为:

Oblue*=Oblue:cApOblue-Ored*E(Y)+E(δ)τ+cOpOtotal-Ored*E(Y)+E(Δ)τ=(E(N)-1)·cApE(N)·(Atotal-Ared*)E(X)+E(N)·E(δ)τ+cOpOtotal-OblueE(Y)+E(Δ)τ

其中,为操作系统层的疲劳阈值Oblue的最佳值,

应用层的警戒阈值Ared的最佳值为:

Ared*={Ared:P[XK+1>Ared|A(K·τ)=Ared]=cAp·τ(Atotal-AredE(X)·τ+E(δ))((Atotal-AredE(X)+1)·τ+E(δ))cAr((Atotal-AredE(X)+1)·τ+E(δ))-cAp((Atotal-AredE(X)+1)·τ+E(δ))}

其中,为应用层的警戒阈值Ared的最佳值,在时间(K+1)·τ之前应用层崩溃的概率为:

β=P[YK+1>Ared|A(K·τ)=Ared]=cAp·τ(K·τ+δ)((K+1)·τ+δ)cAr(K+1)·τ+δ-cAp(K+1)·τ+δ,

其中,E(X)为Xi期望值,E(Y)为Yi期望值,cOp和cOr分别是操作系统每一次再生和被动重 启的费用,Δ和Δ'分别为操作系统再生和被动重启的时间,E(Δ)和E(Δ')分别是Δ和Δ'的期 望值,cAp和cAr分别是应用层每一次再生和被动重启的费用,δ和δ'分别为应用层再生和被 动重启的时间,E(δ)和E(δ')分别是δ和δ'的期望值。

步骤四:根据操作系统层的警戒阈值Ored的最佳值、操作系统层的疲劳阈值Oblue的最佳值, 和应用层的警戒阈值Ared的最佳值,得到两层软件系统可用性最大值。

本发明针对两层软件老化现象的基于维护费用的全局优化方法,还包括:

得到两层软件系统可用性最大值的方法,包括以下几个步骤,

1)对应用层和操作系统层的状态进行划分,当Ared<A(t)≤Atotal时,应用层处于安全状态; 当0<A(t)≤Ared时,应用层处于警戒状态;当A(t)=0时,应用层处于耗尽状态;当 Oblue<O(t)≤Ototal时,操作系统层处于安全状态;当Ored<O(t)≤Oblue时,操作系统层处于 疲劳状态;当0<O(t)≤Ored时,操作系统层处于警戒状态;当O(t)=0时,操作系统层处 于耗尽状态;

2)求得当应用层处于警戒状态或耗尽状态,并且操作系统层处于疲劳状态的概率pO1,以及 此时两层软件系统的可用性A1为:

PO1=O*blue-O*redE(Y)τ·Atotal-A*redE(X)τ=(O*blue-O*red)·E(X)(Atotal-A*red)·E(Y)

A1=(Ototal-O*blue)·τE(Y)-[(Ototal-O*blue)·τE(Y)(Atotal-A*red)·τE(X)+tAM-1]·tAM(Ototal-O*blue)·τE(Y)+E(Δ)

当操作系统层处于警戒状态的概率pO2,以及此时两层软件系统的可用性A2为:

pO2=(1-pO1)(1-α)

A2=(Ototal-O*red)·τE(Y)-[(Ototal-O*red)·τE(Y)(Atotal-A*red)·τE(X)+tAM-1]·tAM(Ototal-O*red)·τE(Y)+E(Δ),

当操作系统层到达耗尽状态的概率pO3,以及此时两层软件系统的可用性A3为:

pO3=(1-pO1

A3=Ototal·τE(Y)-[Ototal·τE(Y)(Atotal-A*red)·τE(X)+tAM-1]·tAMOtotal·τE(Y)+E(Δ),

其中,tAM=:β·δ'+(1-β)δ是维护一次应用层的平均时间,

3)求取两层软件系统的可用性最大值为:

Availability=pO1·A1+pO2·A2+pO3·A3

有益效果:

本发明从两层软件的内存更新过程获取到一些内存变化数据后就可以构建出两层软件的 老化分析模型,结合构建好的老化分析模型以及最佳阈值水平的定义可以在最小化维护费用 的基础上算出两层软件的最佳老化和再生的阈值水平,这样就可以在很短时间之内有效地计 算出整个系统的最佳可用性大小。本发明的应用范围可以扩大到任何一个两层软件的系统领 域。

附图说明

图1是本发明的执行流程示意图。

图2是两层软件再生的更新过程模型。

图3是基于A(t)、O(t)以及警戒阈值的软件状态。

具体实施方式

下面将结合附图对本发明做进一步详细说明。

本发明在于利用系统软件更新过程的分析模型以及加速测试理论,测试两层软件在加速 情况下的寿命数据,推导出受到软件老化现象影响的两层老化在正常水平下的可用性概率分 布,从而得出在最小化维护费用的基础上系统的可用性大小。这个目的可以按照以下步骤实 现,如图1所示:

第一步:基于更新过程构建两层软件老化分析模型。软件更新过程是指重新初始化软件 内部状态,释放被占用的内存资源。

第二步:定义系统状态的阈值水平。

第三步:分析系统可用性。系统可用性是指系统软件正常运行的时间在整个系统时间中 所占的比例。

本发明对一个电子商务网站的Web服务器软件(应用层)以及其底下的操作系统进行系 统可用性研究。下面结合其他附图对最大化系统可用性的过程作进一步说明。

1、搭建实验平台,获得输出参数

1.1、搭建实验平台:在应用层中引入一个带有内存泄漏bug的模块,该模块在服务器正 常处理HTTP请求时被随机调用,通过控制调用该模块的概率,使其发生内存泄漏速率不一, 在操作系统层中,加载一个字符设备模块,在该字符设备模块模块中通过写方法向操作系统 申请内存块并不释放,造成操作系统的内存泄漏。当应用层中额外引入的模块被调用时,字 符设备模块也被调用。

1.2、记录应用层在初始健康状态时可利用内存大小Atotal和操作系统层在初始健康状态时 可利用内存大小Ototal

1.3、运行实验,同时用监测器监测应用层在时间间隔(τ·(i-1),τ·i]内消耗的内存大小Xi和 监测操作系统层在时间间隔(τ·(i-1),τ·i]内消耗的内存大小Yi,然后分别保存到文件 tomcatMem.log和sysMeminfo.log中,其中τ为监测器监测时间间隔,i为监测器监测的总次 数。整个实验的运行时间是一个小时。

1.4、计算Xi和Yi的期望值E(X)、E(Y)。

2、将第1步中得到的Atotal、Ototal、Xi和Yi代入到

A(k·τ)=Atotal-Σi=1kXiO(k·τ)=Ototal-Σi=1kYi

中,得到基于更新过程构建两层软件老化分析模型,见图2。其中,k为监测器监测的次数, k·τ为监测器第k次监测时的时间,A(k·τ)为监测器第k次监测时应用层中可用的内存大小, O(k·τ)为监测器第k次监测时操作系统层中可用的内存大小。

3、计算系统状态的最佳阈值水平。定义Ared为应用层的警戒阈值,Oblue为操作系统层的疲劳 阈值,Ored为操作系统层的警戒阈值。将第1步中得到的E(X)和E(Y)以及以往学者研究 老化得到的经验值cOp、cOr、Δ、Δ'、cAp、cAr、δ以及δ'用下述方程式分别计算出Ored、 Ared和Oblue最佳值,其中cOp和cOr分别是操作系统每一次再生和被动重启的费用,Δ和Δ' 分别为操作系统再生和被动重启的时间,E(Δ)和E(Δ')分别是Δ和Δ'的期望值,cAp和cAr分别是应用层每一次再生和被动重启的费用,δ和δ'分别为应用层再生和被动重启的时 间,E(δ)和E(δ')分别是δ和δ'的期望值。

3.1、Ored最佳值的确定

Ored*={Ored:P[YK+1>Ored|O(K·τ)=Ored]=cOp·τ(Ototal-OredE(Y)·τ+E(Δ))((Ototal-OredE(Y)+1)·τ+E(Δ))cOr((Ototal-OredE(Y)+1)·τ+E(Δ))-cOp((Ototal-OredE(Y)+1)·τ+E(Δ))}

其中α=P[YK+1>Ored|O(K·τ)=Ored]=cOp·τ(K·τ+Δ)((K+1)·τ+Δ)cOr(K+1)·τ+Δ-cOp(K+1)·τ+Δ是在时间(K+1)·τ之 前操作系统崩溃的概率。

3.2、Ared最佳值的确定

Ared*={Ared:P[XK+1>Ared|A(K·τ)=Ared]=cAp·τ(Atotal-AredE(X)·τ+E(δ))((Atotal-AredE(X)+1)·τ+E(δ))cAr((Atotal-AredE(X)+1)·τ+E(δ))-cAp((Atotal-AredE(X)+1)·τ+E(δ))}

其中,β=P[YK+1>Ared|A(K·τ)=Ared]=cAp·τ(K·τ+δ)((K+1)·τ+δ)cAr(K+1)·τ+δ-cAp(K+1)·τ+δ是在时间(K+1)·τ 之前应用层崩溃的概率。

3.3、Oblue最佳值的确定

Oblue*=Oblue:cApOblue-Ored*E(Y)+E(δ)τ+cOpOtotal-Ored*E(Y)+E(Δ)τ=(E(N)-1)·cApE(N)·(Atotal-Ared*)E(X)+E(N)·E(δ)τ+cOpOtotal-OblueE(Y)+E(Δ)τ

其中,E(N)满足下列表达式:

E(N)=Ototal-Ored*E(Y)Atotal-Ared*E(Y)+E(δ)τ

4、系统可用性大小确定

4.1、得到α、β、Ored、Ared以及Oblue的最佳值后,定义当Ared<A(t)≤Atotal时应用层处于 安全状态;当0<A(t)≤Ared时应用层处于警戒状态;当A(t)=0时应用层处于耗尽状态,当 Oblue<O(t)≤Ototal时操作系统层处于安全状态;当Ored<O(t)≤Oblue时操作系统层处于疲劳状 态;当0<O(t)≤Ored时操作系统层处于警戒状态;当O(t)=0时操作系统层处于耗尽状态。如 图3所示。

4.2、计算应用层或操作系统层处于各个状态的概率以及系统的可用性大小。

4.2.1、当应用层处于警戒或耗尽状态,而操作系统处于疲劳状态时的概率pO1以及系统的 可用性大小A1分别为

PO1=O*blue-O*redE(Y)τ·Atotal-A*redE(X)τ=(O*blue-O*red)·E(X)(Atotal-A*red)·E(Y)

A1=(Ototal-O*blue)·τE(Y)-[(Ototal-O*blue)·τE(Y)(Atotal-A*red)·τE(X)+tAM-1]·tAM(Ototal-O*blue)·τE(Y)+E(Δ)

4.2.2、当操作系统处于警戒状态时的概率pO2以及系统的可用性大小A2分别为

pO2=(1-pO1)(1-α)

A2=(Ototal-O*red)·τE(Y)-[(Ototal-O*red)·τE(Y)(Atotal-A*red)·τE(X)+tAM-1]·tAM(Ototal-O*red)·τE(Y)+E(Δ)

4.3.3、当操作系统到达耗尽状态时的概率pO3以及系统的可用性大小A3分别为

pO3=(1-pO1

A3=Ototal·τE(Y)-[Ototal·τE(Y)(Atotal-A*red)·τE(X)+tAM-1]·tAMOtotal·τE(Y)+E(Δ)

其中,tAM=:β·δ'+(1-β)δ是维护一次应用层的平均时间。

4.4、得到pO1、A1、pO2、A2、pO3、A3后,将其代入到下述公式中,得到系统的可用性 最大值。

Availability=pO1·A1+pO2·A2+pO3·A3

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号