论文部分内容阅读
SaaS软件部署在云计算环境中,通过云服务提供软件功能。随着云计算的发展,SaaS软件愈加被广泛应用。然而,SaaS软件在运行时会因内部结构设计或外部动态复杂环境等因素的影响而出现性能问题,如何在软件出现性能问题时及时、准确地对其进行识别与诊断以维护软件性能面临着重大的挑战。运行日志是记录当前系统性能参数的重要手段,为识别与诊断系统性能问题提供重要依据。然而,SaaS软件运行时会产生大量的日志,包含的软件性能相关信息却较少,如何生成支持SaaS软件性能问题识别与诊断的性能日志也同样面临着重大的挑战。针对以上挑战,本文提出了基于运行日志分析的SaaS软件性能问题识别与诊断方法。这些方法可以生成充分必要的性能日志,并基于生成的日志及时、准确地对SaaS软件运行时出现的性能问题进行自动识别与诊断,主要研究工作包括:(1)设计了一种支持SaaS软件性能问题识别与诊断的性能日志生成框架。该框架针对云计算平台的三个层次分别提供不同的采集服务。采集服务采用日志抓取和系统监控等技术手段获取SaaS软件系统运行时的性能日志。分析三个层次不同的性能指标信息,对支持SaaS软件性能问题识别与诊断的性能日志属性进行确定,这些属性可以直接且全面地反映软件运行时的性能状态。基于应用层的性能指标对性能问题进行定义,为性能问题类型标注做准备。(2)提出了一种基于隐马尔科夫随机场的SaaS软件性能问题识别方法。该方法使用隐马尔科夫随机场HMRF建模系统运行时的性能状态日志观测值,并使用最大后验概率MAP估计原理解决识别问题。采用Hopfield神经网络HNN估计MAP,HMRF模型的参数则使用期望最大EM算法估计。利用这三种方法的优点,能够快速建立性能问题识别模型并计算出系统当前的性能状态。(3)提出了一种基于受限玻尔兹曼机的SaaS软件性能问题诊断方法。该方法对所有维的特征做归一化处理以消除量纲的影响,并且通过独立成分分析ICA使各维特征相互独立,然后基于受限玻尔兹曼机RBM建立SaaS软件性能问题诊断模型,将该模型简化为一个极大似然估计MLE。这个过程建立的性能问题诊断模型具有较高的诊断能力,能够更细粒度地判断出性能问题的类别。(4)对本文提出的方法进行了案例及实验研究。结合部署在云计算平台上的真实产品系统,验证了本文提出的方法对SaaS软件系统运行时性能问题识别与诊断具有高效性和高准确性,并通过对比实验验证了本文提出的方法的优越性,以及本方法在现实应用中的可行性。