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)|2017. 08. 28.
Cloud Computing and Resource Management참고 문헌 19인용 수 3
한 줄 요약

ProtoXplore는 Apache Spark에서 혼합 워크로드 환경에서 자원 경쟁으로 인한 쿼리 성능 저하를 진단할 수 있도록 도와주는 새로운 시스템이다. 이 시스템은 자원 확보 시간 페널티(RATP)라는 새로운 메트릭을 사용하여 동시 실행 쿼리 간의 자원 경쟁 원인을 정량화하고, 이를 바탕으로 다중 수준의 프로토-그래프를 구성하여 경쟁 원인을 시각화하고 탐색함으로써 성능 저하 요인을 보다 정확하게 진단하고 수동 작업을 줄이는 데 기여한다.

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와 책임 값들을 통합하는 다중 수준의 방향성 비순환 그래프(Proto-Graph)를 구축한다.
  • 클러스터 워크로드의 시계열 모니터링 데이터를 활용하여 Proto-Graph의 간선 가중치(IF)와 노드 가중치(DOR)를 계산함으로써, 하위 그래프를 병렬로 구성할 수 있도록 한다.
  • 웹 기반 인터페이스를 활용하여 자원-호스트 RATP 히트맵과 影향 점수를 시각화하여 사용자가 단계적으로 경쟁 기여 요소를 탐색할 수 있도록 한다.
  • 성능 저하 요인의 계층적 탐색을 안내하기 위해 설명 이론을 적용하여, 저수준 자원 대기에서 고수준 쿼리 상호작용에 이르기까지의 탐색을 유도한다.
  • Apache Spark에서 TPC-DS 워크로드를 사용하여 시스템을 검증하였으며, 정확한 책임 부여 능력과 진단 효율성 향상을 입증하였다.

실험 결과

연구 질문

  • RQ1공유 클러스터 환경에서 특정 동시 실행 쿼리가 성능 저하에 기여하는 원인을 정확히 책임 부여할 수 있는가?
  • RQ2한 쿼리가 다른 쿼리의 자원 경쟁에 기여하는 정도를 체계적으로 정량화할 수 있는 메트릭은 무엇인가?
  • RQ3복잡한 쿼리 간 상호작용을 모델링하고 시각화하여 성능 저하 요인을 계층적이고 다중 수준으로 디버깅할 수 있는가?
  • RQ4시각적이고 설명 기반 인터페이스는 수동 분석에 비해 진단 정확도와 효율성을 얼마나 향상시키는가?

주요 결과

  • 사용자는 기존 모니터링 도구를 사용한 수동 분석 대비 ProtoXplore를 사용할 경우 성능 원인을 69%의 정확도로 특정함.
  • 진단 작업에서 사용자 기권률이 54%에서 2%로 감소하여 사용성 향상과 작업 완료율 향상이 뚜렷하게 개선됨.
  • 전문가가 수동으로 분석한 결과와 다를 경우, 90%의 경우 ProtoXplore의 출력 결과를 정확하다고 수용함으로써 시스템의 진단 신뢰도를 검증함.
  • 수동 분석에 소요된 시간은 ProtoXplore보다 19% 적었지만, 이는 높은 작업 완료율과 정확도로 상쇄되었으며, 이는 시스템의 안내 기능이 인지 부담을 감소시켰음을 시사함.
  • 그래프 생성 모듈이 전체 지연 시간의 주요 원인이었으며, 이는 대규모 배포 환경에서의 최적화 필요성을 시사함.
  • 프로토-그래프 구조는 다양한 수준 간 하위 그래프를 병렬로 구성할 수 있도록 하여 복잡한 워크로드에 대한 확장성 향상에 기여함.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.