发明名称 一种基于执行轨迹追踪的分布式软件异常诊断方法
摘要 本发明涉及一种基于执行轨迹追踪的分布式软件异常诊断方法。通过跨服务组件的执行轨迹监测及约简方法对执行轨迹进行刻画,从系统错误和性能异常两方面进行异常诊断。在系统错误诊断方面,利用树编辑距离来评估当前执行轨迹的异常程度,通过对比分析与历史执行轨迹的差异,定位发生错误的函数调用。在检测性能异常方面,利用主成分分析定位引起性能异常的函数调用。
申请公布号 CN106502907A 申请公布日期 2017.03.15
申请号 CN201610970847.1 申请日期 2016.10.28
申请人 中国科学院软件研究所 发明人 王焘;张文博;王子勇;魏峻;钟华
分类号 G06F11/36(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 北京科迪生专利代理有限责任公司 11251 代理人 成金玉;卢纪
主权项 一种基于执行轨迹追踪的分布式软件异常诊断方法,其特征在于包括以下步骤:第一步:执行轨迹监测:利用动态插桩的方式,在分布式软件的函数调用处插入监测代码,收集该函数的执行信息,执行信息包括该函数唯一标识、处理时间、服务组件唯一标识和远程调用协议中加入的该函数调用关系;根据以上函数的执行信息利用调用树描述函数的执行序列,即执行轨迹;第二步:在覆盖测试阶段对分布式软件进行监测,以构建执行轨迹的集合,上述执行轨迹的集合构建过程如下:针对当前的执行轨迹,通过宽度优先搜索的树匹配算法与上述执行轨迹的集合中已有的执行轨迹进行匹配;如果匹配成功,则继续下一个执行轨迹的匹配;如果匹配失败,则在上述执行轨迹的集合中新增当前的执行轨迹;第三步:将第二步建立的执行轨迹集合作为检测分布式软件的故障的基准,通过比较与分析监测得到的当前执行轨迹与上述执行轨迹集合中的执行轨迹,以定位分布式软件故障的原因;将分布式软件的故障分为系统错误故障和性能异常故障两类,针对这两类故障分别提出相应的异常诊断方法,实现了函数粒度的故障定位。
地址 100190 北京市海淀区中关村南四街4号