当前位置:问答库>论文摘要

题目:基于机器学习的业务软件故障定位关键技术研究

关键词:机器学习;故障定位;概率神经网络;软件复杂网络;安全审计

  摘要

面对以Internet为基础,规模巨大、组成元素交互复杂,持续演化、配置和部署复杂的软件系统,目前的开发实践难以应对软件系统增长的规模和复杂度,软件可用性、可靠性和安全性受到挑战。业务软件故障定位从软件本身和支撑环境研究正常运行条件,为软件性能下降、故障诊断、故障修复,提供理论依据。本文基于机器学习理论探讨业务软件故障定位若干关键技术,包括:故障传播模型、故障定位算法和故障传播网络构造。此外研究了具有一般意义的概率神经网络优化、带外部度复杂网络和数据库复杂网络等学习算法和知识表示模型,主要研究内容如下:(1) 故障传播模型描述抽象或物理组件的依赖关系,根据故障与症状间的不确定性提出了传递闭包故障传播模型。与广泛使用的二分图模型相比,无需区分节点是故障或者症状,而是区分结点间的依赖强度,仿真验证模型能有效增加系统的确定性,提高故障定位识别率。在已有最大覆盖故障定位算法(Max Covering Algorithm+,MCA+)基础上,提出了累积先验概率和多推荐策略的动态DMCA+算法。(2) 故障定位算法分析故障传播模型对症状做出最合理解释,将症状视为条件属性,故障作为模式,故障定位的本质是模式识别,据此设计了基于概率神经网络(Probabilistic Neural Network,PNN)的故障定位算法FLPNN。与DMCA+相比,其精度接近,速度更快,随着网络规模增加,识别率下降缓慢,适合大规模网络故障定位。(3) 针对海量症状下推理故障模式效率低下以及广泛存在机器学习样本冗余问题,提出三种独立于具体算法的样本优选策略,即随机选择、中心近邻和基于数据场策略,克服以往样本选择与顺序相关缺陷。针对PNN样本优选,设计了R-PNN、C-PNN和G-PNN算法。G-PNN通过数据场搜索未能识别样本密度中心,迭代添加到模式层不断修正训练样本误差,直到预定拟合精度。实验表明,G-PNN不仅设计思想简单,且具有接近支持向量机的精度。针对优化后,识别精度下降,提出了基于重采样的G3-PNN,一定程度弥补精度损失。(4) 故障和症状复杂的关联关系构成复杂网络,大量的故障定位基于仿真网络研究算法性能。将故障定位和软件复杂网络结合,研究了业务软件故障传播网络构造,实现Java Jar包和类级网络构造,以日志驱动业务软件故障定位,指导工程实践。(5) 软件修改导致涟漪效应,可能发生数据层关联故障。将复杂网络用于数据层关联表示,提出了软件网络的重要分支数据库复杂网络(DataBase Complex Networks,DBCN),研究实现了基于主、外键关联和基于语义隐性关联的DBCN构造算法。DBCN为软件增量设计、开源软件的二次开发和变更的开发团队等场景提供了精简的数据层可视化业务逻辑描述。(6) 针对传统复杂网络模型难以完备描述软件运行环境和故障传播网络缺陷,提出了带外部度自治域复杂网络模型CN+(Complex Network+)。指出复杂网络的演化是基于超大的完备系统,而表示的均为不完备子系统。具有一定跨粒度分析能力的CN+描述物理系统更加完备,是对复杂网络理论的丰富和发展。(7) 面向业务软件故障定位是统一审计与监控系统UAM(Unified Auditing and Monitoring)的核心功能。增量设计了UAM,解决了代理和服务器通信故障,详述了日志和参数采集,优化了符合国家安全标准的策略管理,设计了面向业务视图,并用软件网络展示了UAM内部代码层和数据层关联。