[论文解读] Analyzing Query Performance and Attributing Blame for Contentions in a Cluster Computing Framework
ProtoXplore 是一种新颖的系统,使管理员能够通过使用一种新指标——资源获取时间惩罚(RATP),将资源共享集群环境中查询性能下降的原因归因于并发查询所引起的资源争用,从而诊断性能瓶颈。该系统采用多级原型图(Proto-Graph)来可视化和探索争用源,显著提高了诊断准确性,并减少了在 Apache Spark 混合工作负载中识别性能瓶颈的手动工作量。
There are many approaches is use today to either prevent or minimize the impact of inter-query interactions on a shared cluster. Despite these measures, performance issues due to concurrent executions of mixed workloads still prevail causing undue waiting times for queries. Analyzing these resource interferences is thus critical in order to answer time sensitive questions like 'who is causing my query to slowdown' in a multi-tenant environment. More importantly, dignosing whether the slowdown of a query is a result of resource contentions caused by other queries or some other external factor can help an admin narrow down the many possibilities of performance degradation. This process of investigating the symptoms of resource contentions and attributing blame to concurrent queries is non-trivial and tedious, and involves hours of manually debugging through a cycle of query interactions. In this paper, we present ProtoXplore - a Proto or first system to eXplore contentions, that helps administrators determine whether the blame for resource bottlenecks can be attributed to concurrent queries, and uses a methodology called Resource Acquire Time Penalty (RATP) to quantify this blame towards contentious sources accurately. Further, ProtoXplore builds on the theory of explanations and enables a step-wise deep exploration of various levels of performance bottlenecks faced by a query during its execution using a multi-level directed acyclic graph called ProtoGraph. Our experimental evaluation uses ProtoXplore to analyze the interactions between TPC-DS queries on Apache Spark to show how ProtoXplore provides explanations that help in diagnosing contention related issues and better managing a changing mixed workload in a shared cluster.
研究动机与目标
- 解决多租户集群环境中因并发查询导致的资源争用是主要但常被误诊的性能下降诊断难题。
- 提供一种系统化框架,将性能下降的根因归咎于特定并发查询,而非依赖耗时的手动调试。
- 使管理员能够区分由资源争用引起的性能下降与其他外部原因,支持诊断与针对性缓解措施。
- 构建一个可扩展的基于 Web 的界面,使不同专业水平的用户能够通过可视化责任归因和性能指标,逐步探索争用来源。
提出的方法
- 提出资源获取时间惩罚(RATP)指标,通过测量在多个资源(CPU、网络、I/O、内存、调度队列)上的阻塞时间,量化资源争用的责任归属。
- 构建多级有向无环图(Proto-Graph),在不同粒度上整合 RATP 和责任值,从任务级到查询级交互。
- 利用集群工作负载的时间序列监控数据计算 Proto-Graph 中的边权重(IF)和节点权重(DOR),支持子图的并行构建。
- 采用基于 Web 的用户界面,可视化资源到主机的 RATP 热力图和影响评分,使用户能够逐步探索争用贡献者。
- 应用解释理论,引导用户通过从底层资源等待到高层查询交互的分层方式,探索性能瓶颈。
- 使用 Apache Spark 上的 TPC-DS 工作负载对系统进行验证,证明其能够准确归因责任并提升诊断效率。
实验结果
研究问题
- RQ1如何在共享集群中准确地将查询性能下降的责任归因于特定的并发查询?
- RQ2哪些指标可以系统性地量化一个查询对另一查询所受影响的资源争用的贡献?
- RQ3如何建模并可视化复杂的查询间交互,以支持分层、多级的性能瓶颈调试?
- RQ4与手动分析相比,可视化且以解释为导向的界面在多大程度上提升了诊断的准确性与效率?
主要发现
- 使用 ProtoXplore 的用户在识别性能原因方面的准确率达到 69%,而使用现有监控工具进行手动分析的准确率仅为 37%。
- 系统将用户在诊断任务中的放弃率从 54% 降低至 2%,表明可用性和任务完成率显著提升。
- 在专家手动答案与系统输出不一致的 90% 情况下,专家认可了 ProtoXplore 输出的正确性,验证了系统的诊断可靠性。
- 手动分析所花费的时间比使用 ProtoXplore 少 19%,但这一优势被更高的任务完成率和准确率所抵消,表明系统的引导作用降低了认知负荷。
- 图构造器(Graph Constructor)模块占用了整体延迟的大部分,凸显了在大规模部署中优化该模块的必要性。
- Proto-Graph 结构支持跨层级子图的并行构建,提升了复杂工作负载下的可扩展性。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。