Skip to main content
QUICK REVIEW

[论文解读] A Zero-Positive Learning Approach for Diagnosing Software Performance Regressions

Mejbah Alam, Justin Gottschlich|arXiv (Cornell University)|Sep 21, 2017
Software System Performance and Reliability参考文献 68被引用 8
一句话总结

该论文提出 AutoPerf,一种零正样本学习框架,利用硬件性能计数器(HWPCs)、自编码器和 k-means 聚类技术,在极低性能分析开销下检测软件性能回归。其平均性能分析开销仅为 4%,且在 10 个真实世界性能回归案例中诊断性能缺陷的准确率高于以往方法,同时在所有案例中均未产生假阴性结果。

ABSTRACT

The field of machine programming (MP), the automation of the development of software, is making notable research advances. This is, in part, due to the emergence of a wide range of novel techniques in machine learning. In this paper, we apply MP to the automation of software performance regression testing. A performance regression is a software performance degradation caused by a code change. We present AutoPerf - a novel approach to automate regression testing that utilizes three core techniques: (i) zero-positive learning, (ii) autoencoders, and (iii) hardware telemetry. We demonstrate AutoPerf's generality and efficacy against 3 types of performance regressions across 10 real performance bugs in 7 benchmark and open-source programs. On average, AutoPerf exhibits 4% profiling overhead and accurately diagnoses more performance bugs than prior state-of-the-art approaches. Thus far, AutoPerf has produced no false negatives.

研究动机与目标

  • 解决在演化软件系统中,尤其是并行程序中,诊断性能回归的挑战。
  • 克服基于规则和监督学习方法的局限性,这些方法需要标注的训练数据或先前的缺陷实例。
  • 开发一种可扩展、通用的解决方案,用于检测多样化的性能回归模式,而无需依赖标注的异常数据。
  • 在保持真实系统中高诊断准确率的同时,最小化性能分析开销。
  • 实现在生产级软件中自动检测性能缺陷(如虚假共享、真实共享和 NUMA 时延)的能力。

提出的方法

  • 使用轻量级插桩技术,从基线版本(Pi)和修改后版本(Pi+1)的程序中收集硬件性能计数器(HWPC)性能数据。
  • 在基线版本(Pi)的 HWPC 性能数据上训练自编码器模型,以学习程序的正常行为模式。
  • 应用零正样本学习(ZPL)通过测量自编码器的重构误差(RE)来检测 Pi+1 中的异常;较高的 RE 表明可能存在性能回归。
  • 使用 k-means 聚类将相似函数分组,以减少训练开销,从而实现在大量变更函数上的可扩展模型训练。
  • 基于重构误差设计统计阈值启发式方法 γ(t),以区分真实回归与正常波动,提升检测准确率。
  • 通过分析函数级别的重构误差和聚类结果,对检测到的回归进行分类与定位。

实验结果

研究问题

  • RQ1零正样本学习方法是否能在无需标注缺陷示例的情况下,有效检测性能回归?
  • RQ2自编码器与硬件性能计数器的集成,相较于现有方法,如何提升检测准确率?
  • RQ3k-means 聚类在多大程度上减少了训练开销,同时保持诊断准确率?
  • RQ4所提出的阈值策略 γ(t) 在最小化假阳性结果的同时,能否维持高真正例检测率?
  • RQ5该系统在真实应用场景中的性能分析开销是多少?其在代码变更规模增加时的可扩展性如何?

主要发现

  • AutoPerf 在所有评估程序中实现了仅 4% 的平均性能分析开销,MySQL 中最高开销为 7%。
  • 该框架在 7 个基准程序和开源程序中检测到全部 10 个真实世界性能缺陷,且未产生任何假阴性。
  • 采用阈值策略 γ(t) 后,AutoPerf 在 t=2 时达到 1.0 的真正例率和 0.05 的假正例率,优于 UBL 和任意阈值基线方法。
  • k-means 聚类将训练时间减少了 2.5 至 5 倍,同时保持高准确率——在 Memcached 中与按函数训练的自编码器达到相当的 F1 分数。
  • 随着聚类数量增加(k=2 到 k=4),F1 分数持续提升,峰值出现在 k=4,表明聚类方法具有良好的可扩展性与有效性。
  • AutoPerf 在准确率与泛化能力方面均优于两种最先进的方法,能够有效检测复杂的性能回归,如虚假共享和 NUMA 时延。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。