Page 178 - 《软件学报》2026年第2期
P. 178

余广坝 等: 面向大规模在线系统的故障根因变更识别                                                        657


                    在微信变更故障数据集上的           HR@5  方面, 本文提出的方法达到了         86.67%  的命中率, 这意味着对于大部分故
                 障, 运维工程师可以通过检查可疑列表来发现故障. 对于本文方法未能准确定位的变更故障, 本文作者与负责故障
                 处理的工程师进行了深入讨论, 探索未能定位成功的原因. 研究发现, 未能定位成功的原因主要有两项: (1) 缺陷变
                 更在变更完成     48 h  后系统才出现异常, 超出了本方法的关注时间范围. 这类故障可能是由于缺陷变更引入的内存
                 泄漏或资源占用后未及时释放的缺陷代码所导致, 这种缺陷代码不会立即显现, 而是在长时间运行过程中才会暴
                 露出来; (2) 由于本方法依赖的告警系统将根因变更导致的告警视为环境噪声导致的, 对告警进行了过滤, 因此未
                 触发本文提出的根因变更方法.
                  5.4   问题  7: 消融实验
                    表  6  中展示了在两个数据集上缺少差异得分计算模块、时间得分计算模块或空间得分计算模块的变种方法
                 的根因变更识别准确率, 从而揭示这           3  个得分对本方法的贡献. 从表        6  中可以看出, 缺少任何一个得分的变种方法
                 的结果都不如使用       3  个得分的结果好. 这证明本文提出的         3  个得分都对根因变更识别有贡献.

                                               表 6 本文方法消融实验结果 (%)

                               数据集             变种方法           HR@1        HR@3         HR@5
                                               本文方法           73.33        80.00       86.67
                             微信变更故障           无差异得分           63.33        70.00       76.67
                               数据集            无时间得分           56.67        73.33       80.00
                                              无空间得分           60.00        70.00       70.00
                                               本文方法           74.00        84.00       88.00
                             模拟变更故障           无差异得分           62.00        76.00       86.00
                               数据集            无时间得分           58.00        78.00       86.00
                                              无空间得分           64.00        74.00       86.00

                    此外, 从表   6  中还可以发现, 如果缺少时间得分计算模块, 根因变更识别方法在                   HR@1  上的结果会显著下降
                 (同比下降 29%). 这一结果进一步证明, 除了考虑变更服务的指标, 软件变更的过程信息也是根因变更识别的重要
                 输入信息之一. 还有一个值得注意的是缺少时间得分计算模块虽然在                         HR@1  上命中率更低, 但是在       HR@3 和
                 HR@5 上的结果却更好. 这是因为故障数据集中存在与告警时间关联性很强, 但是却不是缺陷变更的变更, 这种情
                 况下, 变更时间会成为定位根因变更的干扰. 但融合               3  种得分后, 这种时间得分的干扰会被其他得分抵消, 因而还
                 是能够获得较好的结果.
                  5.5   问题  8: 参数评估
                    本节讨论本文方法是否容易受第            4.6.1  节中判断差异是否显著的阈值         λ 的影响. 图  7  展示了不同的    λ 值在微
                 信真实数据集上对本方法的          HR@1  和  HR@5  的结果影响. 在   DiD  方法中,  λ 通常取  0.01–0.2  之间的值. 从图  7  中
                             λ 值设置的过大, 会导致      HR@1  和  HR@5                  λ 过大会导致判定条件宽松, 从而
                 可以看出, 如果                                    的结果下降, 这是因为
                 DiD  更容易产生误报. 根据图中的结果, 本文提出的方法在              λ = 0.15 时达到最佳的   HR@1  和  HR@5. 值得注意的是
                 λ = 0.15 是本文根据微信系统的特性设置的. 在实际应用中, 最佳的               λ 配置需要根据不同系统或数据集的特性来进
                 行设置.

                                            90
                                                                         HR@1
                                            85                           HR@5
                                            准确率 (%)  75
                                            80
                                            70
                                            65
                                            60
                                              0     0.1   0.2   0.3    0.4   0.5
                                                              λ
                                       图 7 差异得分计算中的阈值          λ 对本方法准确率的影响
   173   174   175   176   177   178   179   180   181   182   183