论文部分内容阅读
随着Internet的快速发展,以Web应用为主要形式的网络服务已成为现代社会不可或缺的重要组成部分,保障网络服务的正常运行并有良好的服务质量十分关键。软件故障诊断技术是一种重要的运行时软件可靠性保障技术,可以用来诊断Web应用的早期故障,以避免系统失效或实现快速失效恢复。然而,目前的故障诊断系统大都要求用户以系统度量阈值的形式自行定义异常状态,这极大的增加了系统的管理复杂度,且容易造成误报和漏报。
面对以上问题,本文研究了面向Web应用故障诊断的关键技术,主要涉及系统监测数据的特点与表示和利用监测数据进行故障诊断的算法。对于监测数据,除系统度量和性能指标两种常规监测数据外,考虑到负载变化可能会对系统度量和性能指标产生影响,我们引入了对负载模式的监测,使诊断算法可以利用负载情况信息来更好地进行诊断。对于故障诊断算法,我们研究了基于负载模式聚类的故障诊断算法和基于结点间度量相关性的故障诊断算法,目前它们分别适用于单结点诊断和集群诊断。这两种诊断算法中的前者先使用聚类方法将负载模式分成若干个簇,使采用基于局部异常因数的故障诊断在这些簇中分别进行,这种算法通过考虑负载情况的影响来提高诊断的准确性。后者利用集群中各结点间系统度量的相关性,检测由相关系数的变化反映出的故障,并能定位到故障结点和故障度量。
基于这些关键技术,本文实现了一个面向Web应用的在线故障诊断框架。该框架使故障诊断算法的实现更加容易,减少用户配置的复杂度,同时可提高故障诊断的自动化程度和有效性。
通过一系列测试,验证了该诊断框架和诊断算法的有效性。