一句话:提出 DiagConfig,通过静态代码分析追踪配置项传播,定位导致性能违规的配置并构建因果链。
可配置软件系统中,错误配置常导致性能下降并违反 SLO,但现有性能诊断工具未考虑配置,难以将性能违规归因到具体配置项。DiagConfig 利用静态代码分析追踪配置选项的传播路径,识别性能敏感选项,检测性能违规,并构建配置与性能违规之间的因果链,帮助利益相关者理解根因。在八个真实软件上的实验表明,DiagConfig 识别性能敏感选项的误报少于基于文档分析的最先进工具(5 对 41),在配置变更导致的性能违规诊断中召回率显著优于基于统计的调试工具(0.892 对 0.289),且可通过压缩配置空间加速自动调优。
Performance degradation due to misconfiguration in software systems that violates SLOs (service-level objectives) is commonplace. Diagnosing and explaining the root causes of such performance violations in configurable software systems is often challenging due to their increasing complexity. Although there are many tools and techniques for diagnosing performance violations, they provide limited evidence to attribute causes of observed performance violations to specific configurations. This is because the configuration is not originally considered in those tools. This paper proposes DiagConfig, specifically designed to conduct configuration diagnosis of performance violations. It leverages static code analysis to track configuration option propagation, identifies performance-sensitive options, detects performance violations, and constructs cause-effect chains that help stakeholders better understand the relationship between configuration and performance violations. Experimental evaluations with eight real-world software demonstrate that DiagConfig produces fewer false positives than a state-of-the-art documentation analysis-based tool (i.e., 5 vs 41) in the identification of performance-sensitive options, and outperforms a statistics-based debugging tool in the diagnosis of performance violations caused by configuration changes, offering more comprehensive results (recall: 0.892 vs 0.289). Moreover, we also show that DiagConfig can accelerate auto-tuning by compressing configuration space.
@inproceedings{ChenCWYHM23,
title = {DiagConfig: Configuration Diagnosis of Performance Violations in Configurable Software Systems},
author = {Zhiming Chen and Pengfei Chen and Peipei Wang and Guangba Yu and Zilong He and Genting Mai},
booktitle = {FSE},
year = {2023},
doi = {10.1145/3611643.3616300}
}