1、对软件抗衰技术中存在的几点问题的探讨摘要计算系统软件抗衰技术是随着计算机技术的发展衍生出的一个新的研究方向,属于计算机应用研究领域。它涉及系统性能检测、故障诊断、软件工程及可靠性分析等方面,主要针对当前计算机运行过程中普遍出现的性能衰退现象,研究其原因、检测和评价方法、软件抗衰策略及实现技术。本论文主要探讨了当前软件抗衰技术中存在的几点问题。 关键词软件抗衰 软件工程 计算机软件 中图分类号:TP311.5 文献标识码:A 一、引言 软件的体系结构为软件系统的构造、行为和关键性质提供了一个高层的抽象,这种抽象包括对构成系统的元素的描述,对元素间交互的描述,对元素间组成模式的描述,以及对模式上的
2、约束的描述。实现抗衰或自愈的软件系统展示了能在运行时自适应以应对资源变动,系统故障等情况的能力,这种能力恰好是建立在这种对于软件系统的高层抽象上的。 二、系统性能的监控和采集 系统性能的监控和性能数据的采集是实现系统抗衰的数据来源,是一个必不可少的环节,因此需要设计一个能适应于分布式计算环境,并且尽可能少的干扰所监控计算节点,可扩缩的性能监控工具。 目前软件系统正变的越来越复杂,庞大,能够反映出系统性能的参数有成千上百,为了能够实时的获悉软件系统所处的状态,需要高频率的采集性能参数数据,这对监控工具的性能数据采集、编码、传输、存储提出了更高的要求。此外,随着软件抗衰粒度的细化,仅有系统级的监控
3、已经不能满足要求,因此需要监控工具能够实现进程级,甚至于线程级的性能监控,从而为细粒度的抗衰策略的研究提供数据支持。 度量系统性能状况的资源耗费参数有很多,各种资源耗费参数对于整体性能的影响是各不相同的,因此还需要对所确定的资源参数的权重进行分析。要确定可以衡量一个计算系统的性能的系统资源参数已不是很容易的问题,要分析其权重给出一个计算系统的合理的评价标准便更加困难,目前尚未检索到有关这方面的研究报告,但是这方面的工作是非常必要的,它会影响到后期的策略制定。 三、系统性能衰退的检测和量化 软件系统运行时的状态像人的状态一样可粗略的划分为“健康”,“亚健康”和“不健康”等三大状态,状态划分的标准
4、以及如何来量化是需要解决的问题。因为它是抗衰策略的制定和实施的重要依据;同时“不健康”状态有着一个比较庞大的范围,也需要进一步细化,需要细粒度的刻画衰退状态,划分衰退的范围,为细粒度的抗衰提供支持。目前这方面的研究主要是通过检测软件系统资源的占用和释放情况、服务的响应时间和响应率来验证软件衰退出现,但不能给出进一步更为细致的量化。 四、系统性能的预测 软件系统的实时性能状态能通过选择性能参数来刻画,通过性能衰退的检测和量化确定,但光有系统状态的历史数据和实时数据对于软件抗衰是不够的,这是因为软件系统未来的负载信息和性能状态对于抗衰决策的制定同样有着重要的影响,需要根据它们做出合理的抗衰决策,从
5、而降低抗衰成本,同时提高可用性。目前这方面的研究工作主要集中是采用线性预测方式预测各种系统资源耗尽的时间估计,这种方式往往难于刻画真正的衰退趋势,误差较大,因此有必要开展这方面的研究工作,提出符合精确性更高的预测方式。 五、软件抗衰策略决策 软件抗衰的目的是提高系统的可靠性,提供持续高质量的服务,同时降低服务的维护成本,因此软件抗衰的时间决策和抗衰粒度决策是值得研究的重要内容。抗衰时间的选择会极大地影响抗衰系统,如果在系统负载高峰期实施,可能带来较低的服务率,如果过早的实施,可能增加抗衰成本,过晚的实施,可能需要采用更高粒度的抗衰,也增加抗衰成本。由于在抗衰期间实施抗衰的部分不能正常提供服务,
6、抗衰粒度的选择又影响了抗衰成本和可用性。抗衰粒度过小,可能抗衰带来的性能改善不明显,需要频的实施抗衰;粒度过大,抗衰实施期间造成的服务不可用时间较长。目前抗衰策略的决策研究工作基本上基于预先假设的状态转移概率和单位时间下各种粒度的抗衰成本,通过公式推导出能获得最大的可用性、最低的抗衰成本的抗衰时间间隔。这种通过分析模型来基于很多假设得出的抗衰决策,在理论上讲得通,而很难应用于实际系统抗衰的决策过程中。鉴于上述分析,有必要开展抗衰决策方面的研究工作,使得能够做出适时适度的抗衰决策。 六、抗衰实施技术 直观上解决衰退问题最有效的途径是重启整个系统,恢复到初始状态,不能轻易选择这种方式的理由是高的抗
7、衰成本和低的系统可用性。因此,目前抗衰实施技术的研究主要集中在微重启技术和递归重启技术等方面,研究的目的就是以最小的抗衰粒度来到达抗衰目的、提高系统可用性,无论是微重启,还是递归重启技术,研究的难点都在于获取模块之间的关联关系,而关联关系的获取可能来自静态的系统体系结构视图,也可能来自系统运行时的反射。对于有完整的设计文档的系统,问题变得很简单,只需把文档作为输入就能解决问题,然而对于缺乏设计文档的系统,需要在运行时建立模块之间的关联关系,这也是研究的难点。 七、结语 计算系统自身总体结构的复杂化倾向己使人难以直接进行系统性能的衰退检测和防护,因此需要研究一种新的技术软件抗衰技术。它能够摆脱人的干预,自动地检测和分析计算系统性能,并在性能出现衰退时及时采取必要的措施。该技术实施的关键是性能检测与分析和抗衰策略的制定。应用了软件抗衰技术的计算系统在运行时能自主地维持其高性能,为系统的高可信赖、高性能和高可靠性提供有力的保证。