一种基于代码异常机制的故障特征提取方法

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:newrevon
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:针对开源云平台系统,该文通过分析系统中的异常处理机制以及日志系统,提出了基于异常信息描述的故障模式提取方法;并过理论分析系统日志能够记录的异常信息特征;系统异常处理机制抛出的异常特征;并结合实验获取日志中能够记录所抛出异常信息的比例,以及提取的异常特征与故障模式的对应关系,从而提出一种基于日志中的异常描述信息,从而进行系统故障诊断。
  关键词: 故障模式提取;日志;异常机制;云平台;故障诊断
  中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2015)20-0204-02
  A Fault Mode Extraction Method Based on Fault Exception Mechanism of Code
  XIE Qiong
  (School of Software Engineering, Tongji University, Shanghai 201804, China)
  Abstract:Respect to open source cloud platform, we proposed a system based on the exception handling mechanism and system logging mechanism in which the exception information are recorded. After analyses the features of abnormal information which can be recorded by the system log, the features of anomaly which thrown by system anomaly’s processing mechanism theoretically, we conduct experiments to show the proportion of thrown abnormal information which can be recorded by log, and the corresponding relations between fault mode and fault pattern. Finally we proposed a method to extract information from the log exception description and diagnosis system fault.
  Key words:fault mode extract; log; exception mechanism; cloud computing system; fault diagnosis
  随着越来越多的个人和企业将信息放在云上,云计算[1]在可靠性、信息安全问题上面临着巨大的挑战。由于计算机固有资源的不可靠性和人为操作失误导致的故障不可避免;同时,由于云计算系统复杂性,使得云计算系统容易因硬件和软件故障,在运行时发生各种失效[2]。因此要获得系统的可靠性保障,故障诊断是一项重要的技术。故障诊断主要包括以下几个步骤:故障定义、故障的描述(故障集提取)、故障检测、故障定位[3]。目前云计算系统故障诊断主要分为三类方法,一、基于性能异常的故障诊断,该方法前期建立正常或故障时的性能模式库,在系统运行时与系统实时性能数据进行对比[5-7];二、端到端的探测技术,在每个节点插入一些探针收集每个模块输出信息,然后每次诊断都从中选择一些合适的探针进行数据分析,故障模式库建立通过故障注入后获取异常特征信息(如注入故障时函数的返回值,每个模块的执行时间)[4];三、心跳机制,通过设置心跳信息判断机器是否运行状况良好,这种诊断方法的诊断粒度低。
  1 基于日志中异常信息故障模式提取
  1.1 函数异常结构描述
  通常入口函数表示某个功能操作开始,以入口函数为起点的调用链上的函数都是与入口函数对应功能操作相关,如果调用链上的函数执行异常,将导致该功能执行失败,即系统发生故障。通过分析函数调用链上抛出的异常信息,获取系统故障的根因。当程序故障被激活后,产生的差错可以有多种形式存在,如:返回码、共享变量、异常等等。在异常得到捕捉之后,程序以不同的方式告知用户错误的发生,如 HTTP 响应消息、日志等。
  
  图1 函数异常结构描述
  1.2 异常特征信息与故障模式对应关系
  故障模式与异常特征之间的关系:在本文中异常特征主要指的是异常和异常的具体描述信息,采用一个三元组FF表示[FF=]。E表示异常类型,D表示异常的详细信息,O表示激发异常的操作
  每入口函数存在一个调用链,从代码结构而言,代码的重用性和可读性,调用链上函数可能只被一个入口函数调用,也可能被多个入口函数调用。当把函数中的一条异常和异常信息作为异常特征信息,此时异常特征信息与故障模式为多对多的关系,在系统诊断过程中获取到的异常特征信息难以确定故障模式。因此在函数中提取异常特征信息时加入功能操作字段,形成异常特征信息三元组FF,使得故障模式与异常特征的关系为一对多的关系,此时获取一条异常特征信息时就能确定一个故障模式。如OpenStack在创建虚拟机操作,一条故障模式为“由于无效请求创建虚拟机失败”,那么其异常特征为<由于输入参数不对创建虚拟机失败;由于网络的格式不对无效的请求;IP无法申请无效的请求>。
  1.3 异常特征信息的提取
  程序中异常被抛出,如果异常所在函数存在捕捉对应异常机制,或者该函数调用链中函数中存在捕捉对应异常机制,那么该异常能够被捕捉。为了获取系统故障时的异常特征,通常采用故障注入的方法,加速系统的失效。在其发生故障时系统能够抛出异常,以及异常详细信息;因此,通过分析源代码,获取源代码中的抛出异常类型、异常描述信息、诱发异常的操作的对应关系,从而建立异常特征元组FF。获取系统异常特征信息的步骤:   Step1:获取故障模式库中某条故障模式j对应功能的入口函数[fin]。
  Step2:获取入口函数[fin]调用的函数序列为[{fin,...,fi,...,fn}i∈N]。
  Step3:获取每个函数中的抛出的异常以及抛出异常的原因描述
  [fein={FF1,...,FFi,...,FFn}i∈N]
  Step4:那么一个故障模式对应的异常特征集为[FMin={fein,...,fei,...,fen}i∈N]。
  2 实验分析
  通过代码分析我们得出的结论为在OpenStack中,系统异常能够被捕获,那么被捕获的异常以及异常描述信息能够通过日志模块,写入到日中。为了验证基于异常提取异常特征的方法,能够覆盖所有由异常引发的故障。利用UnderStand代码分析工具提供的接口,分析OpenStack代码中是否所有的抛出的异常都能够被捕捉。
  对于OpenStack而言,抛出异常的代码是以Raise开头,捕获异常的代码以except进行异常捕获。首先获取源代码中能够抛出异常点[Elocal=],[Ec]表示抛出异常类型,[Ei]表示抛出异常所在的函数位置,异常点组成的结合[Eraise];然后获取源代码中所有except代码块所能捕获到的异常点的集合[Eexcept];获取系统中没能捕捉到的异常集合[Eno_exception=Eraise-Eexcept],获得的实验室数据如表1。对于异常处理结构性好的代码,几乎抛出的所有异常都能够被捕捉,从实验数据看OpenStack的异常处理几乎都能被捕捉。
  表1 OpenStack代码异常捕捉率
  [模块名称\
其他文献
重组是国际保险业呈现的新趋势,也是我国保险业加快发展和迅速提高竞争力的必然选择.在重组过程中,完善保险监管至关重要.监管要把握住保险业重组的导向,健全保险法律法规体
为增强全体员工学习、执行规章制度的自觉性,全面提高员工的业务素质和经营管理水平,打造一支专业精、能力强的员工队伍,农业发展银行海南省分行举办了以中国农业发展银行重要文
在日常的办公中,经常需要我们填写各种各样的表格。有些表格内容有着严格的规范化要求,尽管填写前专门开会反复强调,但仍然会有部分人员不按标准格式填写,因此常常需要返工修
目的:探究慢阻肺急性加重期C-反应蛋白以及降钙素原的测定意义。方法选择2015年1月~2015年11月我院收治的慢性阻塞性肺疾病急性加重期患者98例作为急性加重组,选取同期收治的慢
个人金融业务结构的调整和营销方式的转变是国有商业银行个人金融业务再造的两个主要内容.其中,个人理财业务是个人金融业务架构的核心,在对业务结构进行调整的同时,国有商业
目的探讨中药汤剂联合酪酸梭菌活菌、奥替溴铵治疗腹泻型肠易激综合征(IBS)的疗效。方法选择腹泻型肠易激综合征(IBS)100例,随机分为实验组及对照组,各50例,两组均服用酪酸梭菌活
目的研究非典型性肺结核X线、CT诊断与病理分析的临床应用效果。方法选取我院2013年6月~2015年6月收治的经过病理检查被确诊为非典型性肺结核患者60例作为研究对象,将其随机
目的研究阴道彩超对盆腔肿块的诊断价值。方法选取我院2014年1月~2015年7月收治的盆腔肿块患者143例作为研究对象,所有患者均进行阴道彩超诊断,与病理诊断结果相对照。观察最
基于数据驱动的故障预测通过对故障特征的历史数据进行建模,对新的数据进行分类,达到故障识别的目的。由于故障数据的样本空间小,而故障特征的维度非常高,故障预测的建模呈现
近年来,在我国国民经济保持较快增长的大气候下,海南经济开始复苏,并逐步转入经济发展的"快车道",投资和消费稳中趋旺,外贸出口稳步增长,社会总需求全面拉升,金融运行日趋平