分叉,笛卡尔,相关,伽罗瓦,索引
本课程介绍了以下分析模式:分叉点、笛卡尔轨迹、相关不连续性、格罗滕迪克轨迹、索引轨迹。
分叉点
以下来自正常与异常软件环境的两条软件追踪记录,是该模式的完美示例。我们从突变理论中借用“分叉点”这一名称:
首先,我们注意到上述两条追踪记录中的 PID 相同(均为 2768 和 3756)。因此可以推断,这两条记录很可能来自同一环境和同一会话。其次,消息 A、B、C 一直到 X 和 Y 完全一致。而后两个消息的查询结果 XXX 和 YYY 存在显著差异。在此之后,两条记录的消息分布无论在数量还是内容上都大相径庭。尽管追踪时间相同(均为 15 秒),但正常情况下的 当前语句速率 为 155 条消息/秒,而异常情况则高达 388 条消息/秒。
当追踪噪声比例较小时,我们很容易观察到分叉点。例如,在终端服务环境中,可以通过根据问题描述选择合适的追踪模块,或从完整的 CDF 追踪中过滤掉无关模块来实现这一点。
下图展示了分叉点分析模式:
卡氏追踪
卡氏追踪分析模式的灵感来源于笛卡尔积。它适用于一种场景:我们拥有一条长追踪记录,以及少数几条 小型 DA+TA 配置追踪记录(文件)。前者记录中的消息与后者记录中的消息(内容或内容变化)存在关联,如以下图表所示:
可以将一个矩形视为两条线段的乘积,或将一个圆柱体视为一个圆与一条线段的乘积。与 纤维丛、追踪预层 和 追踪扩展 不同,这两种追踪彼此完全独立。
相关不连续性
在分析 互相关性 或 内相关性 并发现某条追踪记录中某部分或另一条追踪记录中存在 不连续性 时,检查同一追踪记录的其他部分(如不同 活动线程)或另一条追踪记录中是否存在对应的 相关不连续性 会非常有帮助。这种模式可能指向潜在的通信问题,从而提示我们需要收集其他类型的追踪数据(例如网络追踪)以进行进一步分析。
格罗伊斯追踪
在对不同追踪记录和日志进行 互相关分析 时,我们不仅可以沿时间方向前进,还可以向后追溯(反向追踪)。在某些情况下,我们可以先在两个日志中识别出 关键事件,然后分别向相反方向移动,寻找另一对有助于诊断的消息。我们称这种分析模式为 格罗伊斯追踪,其灵感来源于数学中的格罗伊斯连接。在下图所示的情形中,从追踪 A 到追踪 B 再返回的过程对应于函数 F 和 G,其中 A 和 B 代表单个追踪消息或 消息上下文(依据单调性定义)。格罗伊斯追踪分析模式如下图所示:
索引追踪
索引追踪模式是 互相关性 的一种变体,其特征是:一条追踪记录中的感兴趣消息指向另一条追踪记录中的特定 活动区域。后一条追踪记录可能非常庞大,来自另一台计算机,并被分割成多个部分(拆分追踪)。当需要诊断一个大型拆分追踪问题,但又不知道其发生时间时,这种模式尤为有用。此时,一条记录了软件执行轨迹的索引追踪(例如在类似代理架构中)可以定位到拆分追踪中的正确片段。
Quiz
在比较同一用例下的正常追踪与异常追踪记录时,用于定位两者开始出现显著差异(分叉)位置的分析模式是?