程序员
董欣欣的个人博客

《面向软件老化的web应用系统分级再生策略研究》总结

研究背景:

软件老化:由于软件缺陷而导致系统资源损耗,如内存溢出、死锁、死循环等,最终使得软件失效的现象称为软件老化(老化现象普遍存在,无法根除)。指运行一段时间后,软件系统的性能持续下降、占用的资源不断增加,错误不断累积,最终导致软件失效或系统宕机的现象。
之前提出的再生策略为两级再生策略:将系统分为应用级和系统级两个再生等级
两级再生策略缺点:1、两级软件再生策略的再生对象通常是操作系统、应用服务或进程,而Web服务器通常采用基于组件容器的模式,结构可以分为服务器软件(即中间件)、应用服务以及组件三个层次。2、两级软件再生策略通常仅根据服务器的某个性能指标如系统内存使用率来评系统的状态,而应用服务器的各个层次的性能指标都在一定程度上反应系统的状态,因此仅对系统级的指标进行监控和评估会降低评估的灵敏度。3、只考虑单方面影响(如再生持续时间、忽略再生代价和效果),所以增加再生频率,增加了成本,除此也没有考虑负载请求量对再生决策影响。
研究的问题:
1、确定软件再生实施时刻(建立系统老化状态评估模型分析相关老化指标,采用局部多项式回归法提取老化性能指标的资源损耗量,最后采用阈值法确定系统当前是否处于老化状态)
2、确定软件再生事实粒度问题,(即软件再生实施等级和实施对象),(利用多属性决策法选择确定再生等级和再生对象)
3、组件的再生次序问题(利用串并结合的组件再生方式和BP神经网络确定组件再生次序)
老化原因:内存泄露、未释放的文件锁、死循环、数据不一致以及腐烂的数据库和网络连接等,其根源是软件系统中普遍存在一类不确定的暂时性Bug,这类Bug可以长时间驻留在软件中,只有在特定条件触发时才会出现,这类Bug又被Heisenbugs。Heisenbugs无法在 开发和测试阶段排除,并且Heisenbugs—旦出现,就可能会导致软件意外失效、服务器宕机等,而重启软件或清理软件的环境便可以消除Bug产生的影响。另外,软件老化现象不仅存在于应用软件中,还可能存在于成熟的操作系统和中间件程序等运行环境中,因此,软件老化现象无法根除。
降低老化对系统可靠性影响提出恢复技术:反应式恢复技术和预反应时恢复技术
软件再生策略的研究重点:确定软件再生的实施时刻、实施频率,使得软件的停机时间最短、导致的经济损失最小
软件再生策略研究分两个方向:基于时间的和基于测量的
基于时间的:(优点)宏观 实施简单 适用负载请求量变化不大的
                      (缺点)没有对系统实际的性能状态和负载请求量进行分析,仅是依据最优再生时间间隔进行周期性软件再生
基于测量的:实用负载请求量变化大的 软件再生实施时刻准确 效果显著 
缺点:状态评估准确度不高 信息收集工具运行服务器端增加了系统负担
多属性决策:多属性决策是指决策者根据相互矛盾、不可公度的多个属性对已知的有限方案进行评价、排序和选优等决策,主要用于解决方案的评价或排序与选优问题,只存在相对最优解
b900cb6a-b93e-41fa-be70-04767744b07c
步骤:提出问题、建立决策矩阵、确定决策属性权重、对方案排序选优、方案的实施和反馈
决策矩阵规范化的方法:线性变换法、极差变换法、向量法
定属性权重的方法:主观赋权法、客观赋权法、组合赋权法
主观赋权法:直接赋权法、特征向量法、最小二乘法、最小平方和法
客观赋权法:熵值法、线性规划法、基于方案满意度法、基于方案贴近度法、两阶段法、离差最大化法
组合赋权法:主客观赋权法、组合目标规划法、组合最小二乘法
BP网络:
设三层BP神经网络输入层有n个神经元,隐含层有m个神经元。具体算法步骤
(1)确定输入量X,和期望输出信号/,+ ;
(2)为网络连接权系数和神经元的阈值赋初值;
(3)在确定的学习样本中,按顺序取样输入到BP网络中;
(4)分别计算隐含层输入向量、输出向量,输出层输入向量、输出向量;
(5)求各层的误差;
(6)修改各层的权值和阈值;
(7)循环计算,直到误差都满足预设设定的停止条件为止
基于软件分级再生策略的原型系统具体的执行流程:系统状态信息采集、分级老化状态评估、软件再生等级的选择、实施组件级再生
分级状态评估流程如下:
Stepl:进行组件级状态评估,根据组件的状态判定各个组件是否存在异常。如果没有组件发生异常,则认为系统处于正常状态,评估结束,不需进行软件再生,否则转Step2。
Step2:若发生老化组件的数量大于N,则转Step3,否则评估结束,实施组件级再生。
Step3:根据所有组件状态的线性组合来确定系统是否仅发生了组件级老化,若是,则系统仅发生了组件级老化,只需再生发生异常的组件,评估结束,否则转 Step4。
Step4:进行系统老化状态评估,根据操作系统、中间件和应用服务的多个性能指标综合评估系统的老化状态,评估结果为系统当前的老化程度,当老化程度大于设定阈值时,认为系统处于老化状态,否则认为系统处于正常状态,评估结束。
未经允许不得转载:董不董 - 董欣欣的个人博客 » 《面向软件老化的web应用系统分级再生策略研究》总结
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

www.dongxinxin.cn 技术博客

联系我关于我