论文部分内容阅读
在现代社会,分布式系统发挥着越来越重要的作用,推动着各行各业的快速发展,极大地便利了人们的日常生活。随着技术的发展和用户需求的增加,分布式系统呈现出新的发展趋势,包括用户数量日趋增加、设施规模日趋庞大、系统结构日趋复杂等。这些发展趋势为分布式系统的发展带来了机遇,但同时也带了挑战,其中重要的一项便是日益增多的系统异常。这些异常严重地影响着系统的可靠性和性能,并可能造成巨大的损失,特别是在安全攸关的领域,这些异常可能带来灾难性的后果。作为一种运行时的技术,系统监控对系统运行时信息进行收集,据此检测和诊断系统运行过程中出现的异常,并对系统进行恢复,从而有效地提高分布式系统的可靠性和性能。在收集的各种类型的数据中,用户请求路径(简称路径)记录了用户请求的执行过程及上下文信息,能为异常的检测和诊断提供更为丰富、更有价值的信息。因此,面向路径的系统监控技术得到了广泛的应用,成为学术界和工业界关注的热点。但是,分布式系统呈现出的发展趋势为面向路径的系统监控技术带来了严峻的挑战,包括:如何准确、实时、低开销地对路径数据进行收集并有效地进行展示;如何快速、准确地从海量的路径数据中检测出系统异常;如何基于路径数据快速、准确地对系统中的故障进行细粒度地识别和定位等。另外,难以获取满足实际需要的路径数据给这些技术的发展带来了阻碍。针对这些问题和挑战,本文对面向路径系统监控的关键技术和基础数据展开深入的研究,主要工作和贡献包括:(1)轻量级的白盒跟踪方法文章给出了一个轻量级的白盒跟踪方法MTracer,MTracer能够准确、实时地捕获用户请求路径,记录节点、构件、函数等不同粒度的执行信息。基于Web的可视化工具MTracer-Viz能够对收集的路径数据进行分析,并从不同的角度对信息进行展示,以辅助用户进行系统理解和维护。实验表明,MTracer给系统带来的额外开销处于较低水平,且具有较高的处理速度,能够有效地对实际系统的行为进行跟踪。另外,MTracer在易用性和通用性方面具有较好的表现。(2)细粒度、多场景的请求路径数据集文章给出了一个细粒度、多场景的请求路径数据集TraceBench,TraceBench是第一个以用户请求为中心的细粒度开源路径数据集。在数据集的收集过程中,通过设置不同的集群规模、请求类型、负载强度、故障种类等构建不同的收集场景,使目标系统在不同场景中表现出不同的行为特征,从而保证数据集可以满足不同的应用需要。实验表明,TraceBench中的数据真实可用,能够有效地支持异常检测和诊断等系统监控相关技术,且适用于一些其它研究,如不变式挖掘等。(3)基于运行时验证的异常检测方法文章给出了一个基于运行时验证的异常检测方法。该方法利用不同的逻辑语言对系统行为特征进行描述,并利用运行时验证中的相关技术将系统特征转换成方法的内部表达,据此对路径数据进行检查,发现系统中存在的异常。实验结果表明,方法采用的逻辑语言可以准确灵活地对系统行为特征模型范围内的行为特征进行描述;且能够在特征描述的范围内准确地检测出异常路径,并具有较高的效率,能够满足实际需要。(4)基于路径分割的性能异常诊断方法文章给出了一个基于路径分割的性能异常诊断方法SegDiag。SegDiag利用自动分割算法对路径数据进行分割,达到降低数据维度、增大样本容量、提高信息利用率等目的,从而提高分析过程的准确度和效率;SegDiag引入循环过程并给出合理的循环终止条件,可以进一步提高方法的准确度;另外,方法还采用了一个综合投票机制,可以准确地对不同粒度的故障进行定位,并为用户提供灵活的投票选择。实验结果验证了SegDiag的准确度和效率。