Relational Debugging - Pinpointing Root Causes of Performance Problems

Relational Debugging - Pinpointing Root Causes of Performance Problems
复制标题

关系调试 - 查明性能问题的根本原因

DOI:
--
复制
发表时间:
2023
期刊:
USENIX Symposium on Operating Systems Design and Implementation
影响因子:
--
通讯作者:
Ding Yuan
Ding Yuan
中科院分区:
--
文献类型:
--
作者:
Xiang Ren;Sitao Wang;Zhuqi Jin;David Lion;Adrian Chiu;Tianyi Xu;Ding Yuan

文献摘要

参考文献

相似文献

众所周知,性能调试是难以捉摸的--现实世界中的性能问题很少是明确的故障,而是通过累积fi的细粒度症状来表现出来的。通常,确定性能异常是具有挑战性的-绝对测量是不可靠的,因为系统性能本质上与工作负载相关。现有技术侧重于识别在执行之间偏离的绝对谓词,这将它们的应用限制在性能问题上。本文介绍了关系调试,这是一种自动找出性能问题根本原因的新技术。其核心思想是捕获并推理fi细粒度运行时事件之间的关系。我们表明,关系为解释性能异常和定位根本原因提供了巨大的实用工具。关系调试非常有效,只需最少两次执行(一次好的运行和一次坏的运行),消除了生成和标记传统技术所需的许多不同执行的痛点。我们通过开发一个实用的工具Perspect来实现关系型调试。Perspect直接在x86二进制文件上运行,以适应现实世界的诊断方案。我们在Go运行时、MongoDB、Redis和Coreutils中评估了12个具有挑战性的性能问题和各种症状。透视准确地定位(或排除)了这些问题的根本原因。特别是,我们使用fi诊断了两个开放的错误,其中开发人员未能找到根本原因--fi报告的根本原因被开发人员否认了。一项受控用户研究表明,Perspect可以将调试速度提高至少10.87倍。
Performance debugging is notoriously elusive—real-world performance problems are rarely clear-cut failures, but manifest through the accumulation of fine-grained symptoms. Oftentimes, it is challenging to determine performance anomalies— absolute measures are unreliable, as system performance is inherently relative to workloads. Existing techniques focus on identifying absolute predicates that deviate between executions, which limits their application to performance problems. This paper introduces relational debugging , a new technique that automatically pinpoints the root causes of performance problems. The core idea is to capture and reason about relations between fine-grained runtime events. We show that relations provide immense utilities to explain performance anomalies and locate root causes. Relational debugging is highly effective with a minimal two executions (a good and a bad run), eliminating the pain point of producing and labeling many different executions required by traditional techniques. We realize relational debugging by developing a practical tool named Perspect. Perspect directly operates on x86 binaries to accommodate real-world diagnosis scenarios. We evaluate Perspect on twelve challenging performance issues with various symptoms in Go runtime, MongoDB, Redis, and Coreutils. Perspect accurately located (or excluded) the root causes of these issues. In particular, we used Perspect to diagnose two open bugs , where developers failed to find root causes—the root causes reported by Perspect were confirmed by developers. A controlled user study shows that Perspect can speed up debugging by at least 10.87 times.
DOI: 10.1145/3192366.3192376
发表时间: 2018-06
期刊: Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation
影响因子: --
作者:
J. Vilk;E. Berger
通讯作者: J. Vilk;E. Berger
DMon:使用选择性分析有效检测和纠正数据局部性问题
DOI: --
发表时间: 2021
期刊: Proceedings of the Symposium on Operating Systems Principles
影响因子: --
作者:
Khan, Tanvir Ahmed;Neal, Ian;Pokam, Gilles;Mozafari, Barzan;Kasikci
通讯作者: Kasikci
Argus:使用带注释的因果跟踪调试现代桌面应用程序中的性能问题
DOI: --
发表时间: 2021
期刊: The 2021 USENIX Annual Technical Conference
影响因子: --
作者:
Weng, Lingmei;Huang, Peng;Nieh, Jason;Yang, Junfeng
通讯作者: Yang, Junfeng
DOI: 10.1145/3453483.3454101
发表时间: 2021
期刊: ACM SIGPLAN Conference on Programming Language Design and Implementation
影响因子: --
作者:
Zuo, Gefei;Ma, Jiacheng;Quinn, Andrew;Bhatotia, Pramod;Fonseca, Pedro;Kasikci, Baris
通讯作者: Kasikci, Baris