云计算环境下面向web应用的性能诊断方法和系统的制作方法

文档序号:7772513阅读:192来源:国知局
专利名称:云计算环境下面向web应用的性能诊断方法和系统的制作方法
技术领域
本发明属于云计算技术领域,具体涉及一种云计算环境下面向web应用的性能诊断方法和系统。
背景技术
自亚马逊公司推出EC2服务以来,云计算逐渐成为工业界和学术界关注的热点, 而以虚拟化技术为支撑技术也成为构建云计算平台的主流方案。当前云计算最主要的应用是web应用的托管,而web应用的性能直接关系到用户体验,因此如何在最大化效率的同时保证应用性能满足服务水平协议(Service Level Agreement,简称SLA)所定义的服务水平目标(Service Level Objective,简称SL0),并在性能出现问题时快速排查问题原因,成为云计算供应商在运营中面临的主要挑战。解决这个问题的一个传统方案是通过对监控度量设置阈值并在超出阈值时报警以检测问题,在问题出现时则需要系统管理员运用知识和经验对问题进行诊断。另一个方法是应用机器学习的技术,对性能问题进行数据分析和特征提取,帮助分析人员快速确定性能瓶颈,降低诊断难度。然而,现有的上述方法各自存在一些问题设置阈值的方法该需要大量人工干预, 效率较低;通过将已知的问题和处理方法编写成自动化的程序或脚本,可以在一定程度上减少人工干预,但由于系统管理员的知识和经验不一定准确完备,尤其是云计算和虚拟化环境有其特殊性,使得选取的监控度量和设置的阈值可能不能准确反映问题;机器学习的方法减少了对经验的依赖,然而该方法不能充分利用已有的诊断经验。

发明内容
本发明的目的在于提供一种云计算环境下面向web应用的性能诊断方法和系统, 其一方面通过利用机器学习技术计算性能问题的特征,弥补了人的经验上的偏差或不足, 另一方面将已有的诊断经验编码成软件系统可以处理的形式,并用于和待诊断问题进行特征比对,从而结合数据分析和人的经验对性能问题进行诊断,帮助云计算供应商找出影响应用性能的关键因素,快速排查和修复性能问题,保证服务质量。本发明是通过以下技术方案实现的一种云计算环境下面向web应用的性能诊断方法,包括以下步骤收集web应用的性能数据,汇总并存储web应用的性能数据,并收集和存储web应用的元信息,使用web应用的元信息和性能数据对web应用进行数据分析,并根据数据分析的结果生成web应用的状态特征描述记录,在现有诊断记录中检索与特征描述记录具有一定相似度的记录,选出一定数量的相似记录并将相似记录按相似度排序,将相似记录呈现给管理人员。使用web应用的元信息和性能数据对web应用进行数据分析,并根据数据分析的结果生成web应用的状态特征描述记录的步骤包括根据web应用的元信息为web应用的每一种角色构造一个角色向量,并建立web应用的虚拟机标识符到前述角色向量的映射, 根据web应用的元信息和性能数据生成训练数据,根据训练数据,通过学习和特征选择计算出与web应用的服务水平目标状态相关的一个或多个关键性能度量及其特征值,判断关键性能度量是属于物理机,还是属于虚拟机,若关键性能度量属于物理机,则根据web应用的元信息找到物理机对应的虚拟机,将关键性能度量及其特征值加入到虚拟机所对应的角色向量中,根据全部不为空的角色向量组成的集合生成web应用的状态特征描述记录。使用web应用的元信息和性能数据对web应用进行数据分析,并根据数据分析的结果生成web应用的状态特征描述记录的步骤还包括若关键性能度量属于虚拟机,则将关键性能度量及其特征值加入到虚拟机所对应的角色向量中。一种云计算环境下面向web应用的性能诊断系统,包括多个监控服务模块、数据分析模块、诊断记录模块、监控代理模块以及用户接口模块,监控代理模块用于收集web应用的性能数据,监控服务模块用于汇总并存储web应用的性能数据,并收集和存储web应用的元信息,数据分析模块用于使用web应用的元信息和性能数据对web应用进行数据分析, 并根据数据分析的结果生成web应用的状态特征描述记录,诊断记录模块用于在现有诊断记录中检索与特征描述记录具有一定相似度的记录,选出一定数量的相似记录并将相似记录按相似度排序,用户接口模块用于将相似记录呈现给管理人员。数据分析模块包括训练数据生成子模块,特征提取子模块和特征记录构造子模块,训练数据生成子模块用于根据web应用的元信息和性能数据生成训练数据,特征提取子模块用于根据训练数据,通过学习和特征选择计算出与web应用的服务水平目标状态相关的一个或多个关键性能度量及其特征值,特征记录构造子模块用于根据web应用的元信息为web应用的每一种角色构造一个角色向量,并建立web应用的虚拟机标识符到前述角色向量的映射,将关键性能度量及其特征值加入到虚拟机所对应的角色向量中,并根据全部不为空的角色向量组成的集合生成web应用的状态特征描述记录。 web应用的元信息包括web应用的标识符、web应用的虚拟机标识符、虚拟机与物理机的对应关系以及在web应用中的角色。现有诊断记录是对过去已查明原因的性能问题的诊断记录,并包括特征描述和备注信息,其中特征描述是对性能问题对应的web应用的状态特征描述,与web应用的状态特征描述记录形式一致,包括性能问题对应的web应用所包含的组件角色、组件角色对应的关键性能度量及特征值,备注信息则包含性能问题发生的原因描述或解决方法等信息,诊断记录模块还用于对现有诊断记录进行存储。相似度包括记录涉及的组件角色,相同角色涉及的性能度量,以及相同角色相同性能度量对应的特征值。本发明具有以下优点(1)本发明通过在分析过程中将web应用的组件角色作为参数之一,充分利用多层web应用架构上近似的特点以及云计算平台托管大量web应用的优势;(2)本发明为非侵入式设计,不需要对应用和操作系统做任何修改;(3)本发明不依赖于特定的云计算平台,可以与不同的平台产品结合使用。


图1是本发明云计算环境下面向web应用的性能诊断系统的示意框图。图2是本发明云计算环境下面向web应用的性能诊断方法的流程图。
图3是本发明性能诊断方法中步骤(3)的细化流程图。
具体实施例方式本发明方案的基本思想是对监控数据进行分析提炼出问题特征,并将分析结果与现有的诊断经验进行比对,找出过去发生的相同或相似的问题,从而利用过去的经验解决问题,避免重复劳动。本实施方式要求硬件设施在逻辑上划分为一个管理节点和一个以上的计算节点,管理节点和计算节点之间通过网络设备互联,对软件环境的要求是计算节点配置为虚拟化平台,在管理节点安装有资源调度系统,能处理部署虚拟机的请求。在云计算数据中心托管运行的web应用虽然多种多样,但结构上大多遵循多层次的特点,我们假设这些多层web应用都部署在虚拟机上,且各个层次占用一个或多个虚拟机(该假设符合云计算应用中的典型情况),因此组成该应用的每个虚拟机可以看成是该应用的一个组件。如图1所示,本发明的云计算环境下面向web应用的性能诊断系统包括多个监控服务模块1、数据分析模块2、诊断记录模块3、监控代理模块4以及用户接口模块5。监控代理模块4用于收集web应用的性能数据。在本实施方式中,web应用的性能数据包括三个方面(1)应用层的性能数据,即以应用的服务水平目标为指示的性能状态, 包括满足和违反两种;例如服务水平目标规定应用的请求响应时间小于5秒,则小于5秒为满足,不小于为违反;(2)系统层的性能数据,即应用各组件的各项系统性能度量;应用的一个组件是一个虚拟机,典型的系统性能度量包括CPU利用率、网络吞吐率等;C3)应用组件所在的各个物理机的各项系统性能度量;这里的系统性能度量与组件的类似。以上各项性能数据都是对应于时间的一系列数值,每个数值对应于收集该数据的时刻。监控服务模块1用于汇总并存储web应用的性能数据,并收集和存储web应用的元信息。在本实施方式中,web应用的元信息包括web应用的标识符、web应用的虚拟机标识符、虚拟机与物理机的对应关系以及在web应用中的角色。数据分析模块2用于使用web应用的元信息和性能数据对web应用进行数据分析,并根据数据分析的结果生成web应用的状态特征描述记录。诊断记录模块3用于在现有诊断记录中检索与特征描述记录具有一定相似度的记录,选出一定数量的相似记录并将相似记录按相似度排序。本实施方式对过去的已查明原因的性能问题进行记录,称为诊断记录。每一条诊断记录并包括该性能问题的特征描述,以及相关的备注信息。性能问题的特征描述与上述的应用的状态特征描述记录形式一致,备注信息则包含该问题发生的原因描述或解决方法,或其它有用的信息。当对一个待诊断的应用进行数据分析并输出一条应用的状态特征描述记录后,该特征描述被用来在全部诊断记录中进行相似性检索,以寻找相似记录。用户接口模块5用于将相似记录呈现给管理人员。数据分析模块2包括训练数据生成子模块21,特征提取子模块22和特征记录构造子模块23,训练数据生成子模块21用于根据web应用的元信息和性能数据生成训练数据。特征提取子模块22用于根据训练数据,通过学习和特征选择计算出与web应用的服务水平目标状态相关的一个或多个关键性能度量及其特征值。特征记录构造子模块23用于根据web应用的元信息为web应用的每一种角色构造一个角色向量,并建立web应用的虚拟机标识符到前述角色向量的映射,将关键性能度量及其特征值加入到虚拟机所对应的角色向量中,并根据全部不为空的角色向量组成的集合生成web应用的状态特征描述记录。如图2和图3所示,本发明的云计算环境下面向web应用的性能诊断方法包括以下步骤(1)收集web应用的性能数据;(2)汇总并存储web应用的性能数据,并收集和存储web应用的元信息;(3)使用web应用的元信息和性能数据对web应用进行数据分析,并根据数据分析的结果生成web应用的状态特征描述记录,具体包括(31)根据web应用的元信息为web应用的每一种角色构造一个角色向量,并建立 web应用的虚拟机标识符到前述角色向量的映射;(32)根据web应用的元信息和性能数据生成训练数据;将收集到的性能数据组织成如下形式(Mlt,M2t,...,Mnt,St)其中Mkt是组成应用A的虚拟机/物理机k在时刻t的系统度量值的向量(mkl,..., IIikn) ;St是应用A在时刻t的服务水平目标状态,用0或1表示满足或违反;将各个系统度量值的向量合并为一个向量Mt,其包含时刻t应用A的全部系统度量值,最后得到一组训练数据(Mt,St);(33)根据训练数据,通过学习和特征选择计算出与web应用的服务水平目标状态相关的一个或多个关键性能度量及其特征值;即找出一个M的子集M',且利用该子集学习得到的一个关于服务水平目标S的分类器模型具有最高或者足够高的精确度,则该子集内的系统性能度量即是与应用的服务水平目标状态相关的,称为关键性能度量;最后为每一个关键性能度量选择合适作为其特征值(如性能度量在违反服务水平目标时的平均值);(34)判断关键性能度量是属于物理机,还是属于虚拟机,若属于物理机,则转入步骤(35),若属于虚拟机,则转入步骤(36);(35)根据web应用的元信息找到物理机对应的虚拟机;(36)将关键性能度量及其特征值加入到虚拟机所对应的角色向量中;(37)根据全部不为空的角色向量组成的集合生成web应用的状态特征描述记录, 表1展示了一条应用的状态特征描述记录可能的内容和形式;表 权利要求
1.一种云计算环境下面向web应用的性能诊断方法,其特征在于,包括以下步骤 收集web应用的性能数据;汇总并存储所述web应用的性能数据,并收集和存储所述web应用的元信息; 使用所述web应用的元信息和性能数据对所述web应用进行数据分析,并根据数据分析的结果生成所述web应用的状态特征描述记录;在现有诊断记录中检索与所述特征描述记录具有一定相似度的记录,选出一定数量的相似记录并将所述相似记录按相似度排序; 将所述相似记录呈现给管理人员。
2.根据权利要求1所述的性能诊断方法,其特征在于,所述使用所述web应用的元信息和性能数据对所述web应用进行数据分析,并根据数据分析的结果生成所述web应用的状态特征描述记录的步骤包括根据所述web应用的元信息为所述web应用的每一种角色构造一个角色向量,并建立所述web应用的虚拟机标识符到前述角色向量的映射; 根据所述web应用的元信息和性能数据生成训练数据;根据所述训练数据,通过学习和特征选择计算出与所述web应用的服务水平目标状态相关的一个或多个关键性能度量及其特征值;判断所述关键性能度量是属于物理机,还是属于虚拟机;若所述关键性能度量属于物理机,则根据所述web应用的元信息找到所述物理机对应的虚拟机;将所述关键性能度量及其特征值加入到所述虚拟机所对应的角色向量中; 根据全部不为空的角色向量组成的集合生成所述web应用的状态特征描述记录。
3.根据权利要求2所述的性能诊断方法,其特征在于,所述使用所述web应用的元信息和性能数据对所述web应用进行数据分析,并根据数据分析的结果生成所述web应用的状态特征描述记录的步骤还包括若所述关键性能度量属于虚拟机,则将所述关键性能度量及其特征值加入到所述虚拟机所对应的角色向量中。
4.一种云计算环境下面向web应用的性能诊断系统,包括多个监控服务模块(1)、数据分析模块( 、诊断记录模块C3)、监控代理模块(4)以及用户接口模块(5),其特征在于,所述监控代理模块(4)用于收集web应用的性能数据;所述监控服务模块(1)用于汇总并存储所述web应用的性能数据,并收集和存储所述 web应用的元信息;所述数据分析模块( 用于使用所述web应用的元信息和性能数据对所述web应用进行数据分析,并根据数据分析的结果生成所述web应用的状态特征描述记录;所述诊断记录模块C3)用于在现有诊断记录中检索与所述特征描述记录具有一定相似度的记录,选出一定数量的相似记录并将所述相似记录按相似度排序; 所述用户接口模块( 用于将所述相似记录呈现给管理人员。
5.根据权利要求4所述的性能诊断系统,其特征在于,所述数据分析模块(2)包括 练数据生成子模块(21),特征提取子模块0 和特征记录构造子模块03);所述训练数据生成子模块用于根据所述web应用的元信息和性能数据生成训练数据;特征提取子模块0 用于根据所述训练数据,通过学习和特征选择计算出与所述web 应用的服务水平目标状态相关的一个或多个关键性能度量及其特征值;特征记录构造子模块用于根据所述web应用的元信息为所述web应用的每一种角色构造一个角色向量,并建立所述web应用的虚拟机标识符到前述角色向量的映射,将所述关键性能度量及其特征值加入到所述虚拟机所对应的角色向量中,并根据全部不为空的角色向量组成的集合生成所述web应用的状态特征描述记录。
6.根据权利要求4所述的性能诊断系统,其特征在于,所述web应用的元信息包括所述 web应用的标识符、所述web应用的虚拟机标识符、所述虚拟机与物理机的对应关系以及在所述web应用中的角色。
7.根据权利要求4所述的性能诊断系统,其特征在于,所述现有诊断记录是对过去已查明原因的性能问题的诊断记录,并包括特征描述和备注信息,所述特征描述是对所述性能问题对应的web应用的状态特征描述,与所述web应用的状态特征描述记录形式一致,包括所述性能问题对应的web应用所包含的组件角色、所述组件角色对应的关键性能度量及特征值,所述备注信息则包含所述性能问题发生的原因描述或解决方法等信息。
8.根据权利要求4所述的性能诊断系统,其特征在于,所述诊断记录模块(3)还用于对所述现有诊断记录进行存储。
9.根据权利要求4所述的性能诊断系统,其特征在于,所述相似度包括记录涉及的组件角色,相同角色涉及的性能度量,以及相同角色相同性能度量对应的特征值。
全文摘要
本发明公开了一种云计算环境下面向web应用的性能诊断方法,包括以下步骤收集web应用的性能数据,汇总并存储web应用的性能数据,并收集和存储web应用的元信息,使用web应用的元信息和性能数据对web应用进行数据分析,并根据数据分析的结果生成web应用的状态特征描述记录,在现有诊断记录中检索与特征描述记录具有一定相似度的记录,选出一定数量的相似记录并将相似记录按相似度排序,将相似记录呈现给管理人员。本发明一方面弥补了人的经验上的偏差或不足,另一方面利用已有经验自动化诊断过程,减少人工干预。
文档编号H04L12/24GK102546235SQ201110410688
公开日2012年7月4日 申请日期2011年12月12日 优先权日2011年12月12日
发明者吴松, 李端戎, 石宣化, 金海 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1