Skip to main content
QUICK REVIEW

[論文レビュー] Analyzing Query Performance and Attributing Blame for Contentions in a Cluster Computing Framework

Prajakta Kalmegh, Shivnath Babu|arXiv (Cornell University)|Aug 28, 2017
Cloud Computing and Resource Management参考文献 19被引用数 3
ひとこと要約

ProtoXplore は、リソース競合の原因を特定するための新しい指標であるリソース取得時間ペナルティ(RATP)を用いて、同時に実行されるクエリに起因するリソース競合を特定することで、共有クラスタ環境におけるクエリ実行遅延の原因を管理者が診断できる新規システムである。複数レベルのプロトグラフを用いて競合要因を可視化・探索し、混合ワークロードにおける Apache Spark 上のパフォーマンスボトルネックの特定において、診断の正確性を著しく向上させるとともに、人的作業を大幅に削減する。

ABSTRACT

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.

研究の動機と目的

  • 複数テナントのクラスタ環境において、同時に実行されるクエリによるリソース競合が主な原因であるが、しばしば誤診断されるパフォーマンス遅延の診断課題に対処すること。
  • 手作業による時間のかかるデバッグに頼らず、特定の同時実行クエリをパフォーマンス劣化の根本原因として体系的に特定するフレームワークを提供すること。
  • 競合に起因する遅延とその他の外部要因を区別できるようにし、診断と的確な是正措置を支援すること。
  • 多様な専門知識を持つユーザーが、視覚化された責任帰属とパフォーランス指標を通じて、競合要因を段階的に探索できるスケーラブルでウェブベースのインターフェースを構築すること。

提案手法

  • リソース競合に対する責任を測定するための指標として、CPU、ネットワーク、I/O、メモリ、スケジューリングキューなどの複数リソースにおけるブロッキング時間の測定をもとに、リソース取得時間ペナルティ(RATP)を導入する。
  • タスクレベルからクエリレベルまでの異なる粒度でRATPと責任値を集約する、複数レベルの有向非巡回グラフ(プロトグラフ)を構築する。
  • クラスタワークロードからの時系列監視データを用いて、プロトグラフのエッジ重み(IF)とノード重み(DOR)を計算し、サブグラフの並列構築を可能にする。
  • ウェブベースのUIを採用し、リソースからホストへのRATPヒートマップとインパクトスコアを可視化することで、ユーザーが段階的に競合要因を探索できるようにする。
  • 説明理論を応用し、低レベルのリソース待機から高レベルのクエリ相互作用へと段階的な探索を誘導する、パフォーマンスボトルネックの階層的デバッグを支援する。
  • Apache Spark 上のTPC-DSワークロードを用いてシステムを検証し、正確な責任帰属と診断効率の向上を実証した。

実験結果

リサーチクエスチョン

  • RQ1共有クラスタ環境において、特定の同時実行クエリがクエリパフォーマンス遅延に与える影響を正確に責任帰属することは可能か?
  • RQ21つのクエリが他のクエリに影響を与えるリソース競合への貢献度を体系的に測定する指標は何か?
  • RQ3複雑なクエリ間相互作用をどのようにモデル化・可視化すれば、パフォーマンスボトルネックの階層的・多段階的デバッグを支援できるか?
  • RQ4視覚的で説明主導のインターフェースは、手作業分析と比較して、診断の正確性と効率をどの程度向上させるか?

主な発見

  • ユーザーは、既存の監視ツールを用いた手作業分析の37%に比べ、ProtoXploreを用いることでパフォーマンス要因の特定に69%の正確性を達成した。
  • 診断タスクにおけるユーザーの放棄率は、54%から2%にまで低下し、ユーザビリティとタスク完了率の著しい向上を示した。
  • 専門家は、手作業による回答と異なる90%のケースで、ProtoXploreの出力を正しく認識した。これは、システムの診断信頼性を裏付けるものである。
  • 手作業分析に要する時間はProtoXploreより19%少なかったが、タスク完了率と正確性の向上により、システムのガイダンスが認知的負荷を軽減したことが示された。
  • グラフコンストラクターモジュールが全体の遅延を支配しており、大規模な展開において最適化の必要性が浮き彫りになった。
  • プロトグラフ構造により、複数レベルにわたるサブグラフの並列構築が可能となり、複雑なワークロードにおけるスケーラビリティが向上した。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。