Skip to main content
QUICK REVIEW

[论文解读] Automated Reasoning and Detection of Specious Configuration in Large Systems with Symbolic Execution

Y. Charlie Hu, Gongqi Huang|arXiv (Cornell University)|Oct 4, 2020
Advanced Software Engineering Methodologies被引用 5
一句话总结

本文提出 Violet,一种基于符号执行的工具,通过分析不同配置和输入下的代码级执行路径及其性能影响,检测大规模系统中虚假配置——即有效但导致性能下降的设置。Violet 构建性能影响模型,主动识别出 17 个真实世界虚假配置中的 15 个,并在 MySQL、PostgreSQL、Apache 和 Squid 等系统中发现 9 个此前未知的虚假配置。

ABSTRACT

Misconfiguration is a major cause of system failures. Prior solutions focus on detecting invalid settings that are introduced by user mistakes. But another type of misconfiguration that continues to haunt production services is specious configuration--settings that are valid but lead to unexpectedly poor performance in production. Such misconfigurations are subtle, so even careful administrators may fail to foresee them. We propose a tool called Violet to detect such misconfiguration. We realize the crux of specious configuration is that it causes some slow code path to be executed, but the bad performance effect cannot always be triggered. Violet thus takes a novel approach that uses selective symbolic execution to systematically reason about the performance effect of configuration parameters, their combination effect, and the relationship with input. Violet outputs a performance impact model for the automatic detection of poor configuration settings. We applied Violet on four large systems. To evaluate the effectiveness of Violet, we collect 17 real-world specious configuration cases. Violet detects 15 of them. Violet also identifies 9 unknown specious configurations.

研究动机与目标

  • 为解决虚假配置——即因代码路径间微妙交互而引发性能下降的有效设置——在生产系统中普遍存在的挑战。
  • 克服手动调优和黑盒测试的局限性,后者在特定输入或环境条件下无法检测到由配置引起的性能下降。
  • 开发一种系统化的方法,从代码层面推理配置参数的性能影响、其相互作用以及与输入的依赖关系。
  • 构建一种可扩展、精确且可扩展的解决方案,能够在系统发生故障前主动检测到细微且难以追踪的性能问题。

提出的方法

  • Violet 采用选择性符号执行,探索受配置参数和输入值影响的代码路径,识别触发性能关键路径的约束条件。
  • 它集成基于 S2E 平台的自定义追踪器,收集符号探索过程中的低层执行信号,并对性能特征进行性能分析。
  • 基于 LLVM 的静态分析器用于识别源代码中配置参数及其关系,以指导符号执行。
  • 通过比较执行路径并分析不同参数组合对性能的影响,构建配置性能影响模型。
  • 该模型由检查器持续使用,以在新配置或部署环境中检测虚假配置。
  • 通过程序分析和有针对性的符号执行,解决路径爆炸和效率问题,降低开销并提升可扩展性。

实验结果

研究问题

  • RQ1符号执行能否有效用于检测那些虽有效但导致意外性能下降的配置?
  • RQ2系统如何自动推理配置参数、输入数据和环境条件对性能的综合影响?
  • RQ3在分析大规模系统性能影响时,有哪些技术可减少符号执行的性能开销和路径爆炸问题?
  • RQ4此类分析方法在多大程度上能检测到人工分析或黑盒测试所遗漏的真实世界虚假配置案例?

主要发现

  • Violet 有效检测出从生产事故中收集的 17 个真实世界虚假配置中的 15 个。
  • 该工具发现了 9 个此前未知的虚假配置,其中 7 个经开发人员确认为真实的性能问题。
  • Violet 为四个大型系统(MySQL、PostgreSQL、Apache 和 Squid)中的 471 个配置参数构建了性能影响模型。
  • 该方法通过推理不同输入和配置下代码级执行路径及其性能后果,优于静态分析和黑盒测试。
  • 基于符号执行的方法比通过全面测试进行性能调优更精确、更少噪声,能够推广至新的部署环境。
  • 将符号执行与性能分析及静态分析相结合,实现了对常规手段难以检测的细微性能回归的可扩展检测。

更好的研究,从现在开始

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

无需绑定信用卡

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