Structured Comparative Analysis of Systems Logs to Diagnose Performance Problems
背景
在分布式系统的环境下,出现性能问题人力是很难trace到root cause的,主要是因为没有人能够完全了解系统的各个组件。大家都是各司其职,运行其中一部分。导致一旦分布式系统一旦出现问题很难很快就能找到root cause并解决。
贡献
提出了一个通过比较不同性能的分布式系统日志来诊断性能问题的算法 DISTALYZER ,作者实现的代码。很大意义上缩小了出问题的可能性空间。让开发在不需要整个系统的知识上可以更好的定位出来问题。
实验
本文主要在三个大型分布系统上进行了一系列的实验,分别是Triton Sort, HBase, BitTorrent,一共找出来并解决了5个性能问题。
主要算法
主要分为四个部分,分别是
-
Feature Creation
将数据预处理为Event log
和Message log
Event Log
: task 运行的时间戳,表示task运行了多长时间Message Log
: task 运行过程中的变量值,表示task运行过程中变量值的变化
提取并构造出如下的数据结构 -
Predictive Modeling
主要是通过Welch’s t-test
来判断Event log和Message log中变量是否是显著性差异的,并返回一系列所有统计量相加和降序排列的变量列表。 -
Descriptive Modeling
主要是通过DNs来学习变量间的依赖关系,并可视化。 -
Attention Focusing
主要是通过打分函数,对认为更大可能是root cause
的进行标注。
打分函数如下