基于自组织映射模型云软件性能异常错误诊断方法与系统技术方案

技术编号:15003905 阅读:106 留言:0更新日期:2017-04-04 12:08
本发明专利技术公开了一种基于自组织映射模型的云软件性能异常错误诊断方法,包括:追踪记录待检测的软件在云环境中运行时的系统调用信息;分析出现性能异常的虚拟机上软件运行时系统调用序列,划分每个进程对应的系统调用序列;根据划分得到的进程系统调用序列建立检测模型,并对可疑进程进行异常检测;计算出现异常的进程中最相关的系统调用,排序后输出。本发明专利技术能够准确完整地记录软件运行时的行为,能够自动化建模并且检测出异常的系统运行过程,能够更准确地定位异常运行过程相关的系统调用。本方案旨在提供一种在性能异常错误发生时自动化分析定位造成性能异常错误的相关系统调用的方法,更快速高效的帮助开发者定位并解决软件中潜在的性能bug。

【技术实现步骤摘要】

本专利技术属于计算机软件类错误诊断领域,更具体地,涉及一种基于自组织映射模型的云软件性能异常错误诊断方法与系统。
技术介绍
云计算环境中,性能异常错误变成了用户最关心的问题之一。由于性能bug引起的系统性能下降,会影响对用户的服务质量,甚至造成服务等级协议违例,产生严重的经济损失。但是很多时候性能bug的诊断是很困难的。首先,性能bug的触发依赖于特定的输入或者特殊的配置,在特定的条件下才会出现,难以重现。然后,性能bug触发之后,很少会输出错误信息,无法直接给开发者提供相关的诊断信息。为了帮助开发者自动分析错误产生的原因,错误诊断系统成为当前急切需要的新技术。一般来说,目前的性能异常错误检测诊断方法主要分为两大类。一类是静态检测及诊断技术,通过审查程序源代码或者分析程序bug报告,从中发现某种性能bug的特点,包括出现的上下文条件,表现形式等方面。然后根据发现的特点提取检查性能bug的规则,定制一个相应的性能bug检测器,通过遍历源代码,从中发现潜在的性能bug错误。这种方法需要人工分析提取各种性能bug的具体特征,制定检测的规则,难以广泛扩展应用。另一类则是在线性能异常检测诊断技术。通过在软件运行时监测系统性能指标变化,建立系统性能指标变化模型,实时检测系统性能指标是否出现异常。当发现系统性能异常出现的时候,将会开始自动诊断性能异常错误出现的原因。现有的性能异常错误原因诊断技术多是通过计算系统性能指标和性能异常之间的相关性,识别错误相关的系统指标。这样的诊断是粗粒度的,只能够给开发者提供有限的帮助。综上所述,现有的软件性能异常错误检测及诊断方案存在如下不足:基于源代码的静态代码检测诊断技术,依赖于开发人员的经验和技术水平,需要耗费大量人力,并且只能处理有限的几种性能异常bug,难以广泛地扩展应用;在线性能异常检测诊断技术可以动态捕捉系统性能异常的出现,但是检测到异常出现之后,难以定位异常出现的位置,不能有效的帮助开发者找出异常出现的原因。
技术实现思路
针对现有技术的以上缺点或者改进需求,本专利技术提供了一种基于自组织映射模型的云软件性能异常错误诊断方法,其目的在于,解决现有软件性能异常错误检测诊断方法中存在的依赖于大量人工工作无法有效扩展的、难以定位异常出现的位置不能有效帮助开发者找出异常出现的原因的技术问题。为了实现上述目的,按照本专利技术的一个方面,提供了一种基于自组织映射模型的云软件性能异常错误诊断方法,包括以下步骤:(1)追踪记录待检测的软件在云环境中运行时的系统调用信息;(2)分析出现性能异常的虚拟机上软件运行时系统调用序列,划分每个进程对应的系统调用序列;(3)根据划分得到的进程系统调用序列建立检测模型,并对可疑进程进行异常检测;(4)计算出现异常的进程中最相关的系统调用,排序后输出。本专利技术的一个实施例中,步骤(1)中软件系统调用序列信息包括系统调用名、执行的进程或者线程号开始时间和结束时间。本专利技术的一个实施例中,步骤(3)中对可疑进程进行异常检测具体包括以下子步骤:(3-1)将进程对应的系统调用序列集合,根据其最终结束时间在虚拟机异常产生前后划分为两个集合,即异常发生前进程系统调用序列集合和异常发生时进程系统调用序列集合;(3-2)将步骤(3-1)中的异常发生前系统调用序列集合中的系统调用序列作为训练数据,建立自组织映射模型。(3-3)使用步骤(3-2)中建立的自组织映射模型作为检测标准,将步骤(3-1)中的异常发生时系统调用序列集合中的每个序列输入该模型,判断每个序列是否异常。本专利技术的一个实施例中,步骤(4)中计算异常进程中最相关的系统调用需要计算异常系统调用节点与正常邻居节点之间的差异,然后采用多数投票方式选择出最相关的系统调用。按照本专利技术的另一方面,提供了基于自组织映射模型的云软件性能异常错误诊断系统,包括记录模块、划分模块、检测模块以及诊断模块,其中:所述记录模块,用于追踪记录待检测的软件在云环境中运行时的系统调用信息;所述划分模块,用于分析出现性能异常的虚拟机上软件运行时系统调用序列,划分每个进程对应的系统调用序列;所述检测模块,用于根据划分得到的进程系统调用序列建立检测模型,并对可疑进程进行异常检测;所述诊断模块,用于计算出现异常的进程中最相关的系统调用,排序后输出。总体而言,通过本专利技术所构思的以上技术方案与现有技术相比,能够取得下列有益效果:(1)能够在线自动化自动定位造成性能异常出现的系统调用序列,可以及时自动捕捉偶然出现的系统性能异常bug,节省了大量人工测试以及检查的时间和成本。(2)能够发现性能异常出现的原因,自动准确定位与性能异常bug相关的系统调用函数,帮助开发者更有效快速的找到并解决系统中的性能异常bug,有效避免系统出现更严重的问题。(3)采用了基于动态追踪技术,能够在不需要离线bug重现以及没有应用程序源代码的情况下,自动检测并诊断性能异常bug的出现,具有更广阔的应用场景。(4)采用了无监督的学习模型,能够在系统运行时自动训练系统运行时模型,不需要提前准备人工进行标记过的正常和异常数据对模型进行训练,方便检测系统的快速应用和部署。附图说明图1是本专利技术基于自组织映射模型的云软件性能异常错误诊断方法的流程图;图2是对系统调用序列进行异常检测的过程;图3是构建自组织映射模型的过程;图4是利用构建的自组织映射模型进行异常检测的过程。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。此外,下面所描述的本专利技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。本专利技术的整体思路在于,当发现系统出现性能异常的时候,利用记录的系统运行时系统调用情况,检测出异常的系统运行过程,定位造成性能异常出现的相关系统调用。如图1所示,本专利技术基于自组织映射模型的云软件性能异常错误诊断方法包括以下步骤:(1)启动待检测的软件,周期性的收集软件所在虚拟机的系统指标数据。同时记录软件函数调用和系统调用序列信息。软件系统调用序列信息包括系统调用名,执行进程或者线程号,开始和结束时间。这些信息可以通过LTTng本文档来自技高网
...

【技术保护点】
一种基于自组织映射模型的云软件性能异常错误诊断方法,其特征在于,包括以下步骤:(1)追踪记录待检测的软件在云环境中运行时的系统调用信息;(2)分析出现性能异常的虚拟机上软件运行时系统调用序列,划分每个进程对应的系统调用序列;(3)根据划分得到的进程系统调用序列建立检测模型,并对可疑进程进行异常检测;(4)计算出现异常的进程中最相关的系统调用,排序后输出。

【技术特征摘要】
1.一种基于自组织映射模型的云软件性能异常错误诊断方法,其特征
在于,包括以下步骤:
(1)追踪记录待检测的软件在云环境中运行时的系统调用信息;
(2)分析出现性能异常的虚拟机上软件运行时系统调用序列,划分每
个进程对应的系统调用序列;
(3)根据划分得到的进程系统调用序列建立检测模型,并对可疑进程
进行异常检测;
(4)计算出现异常的进程中最相关的系统调用,排序后输出。
2.根据权利要求1中所述的检测方法,其特征在于,步骤(1)中软件
系统调用序列信息包括系统调用名、执行的进程或者线程号开始时间和结
束时间。
3.根据权利要求1或2中所述的检测方法,其特征在于,步骤(3)中
对可疑进程进行异常检测具体包括以下子步骤:
(3-1)将进程对应的系统调用序列集合,根据其最终结束时间在虚拟
机异常产生前后划分为两个集合,即异常发生前进程系统调用序列集合和
异常发生时进程系统调用序列集合;
(3-2)将步骤(3-1)中的异常发生前系统调用序列集合中的系统调用

【专利技术属性】
技术研发人员:邹德清代炜琦文子龙金海
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1