[논문 리뷰] Improving Spark Application Throughput Via Memory Aware Task Co-location: A Mixture of Experts Approach
이 논문은 런타임에 사전 훈련된 메모리 모델들 중에서 최적의 모델을 선택함으로써 Spark 애플리케이션의 메모리 사용량을 예측하는 전문가의 혼합(mixture-of-experts) 접근법을 제안한다. 이를 통해 공유 호스트 상에서 정확한 작업 공유 배치를 가능하게 하여, 고립 실행 대비 8.69배 높은 시스템 스루풋과 49% 빠른 전환 시간을 달성한다. 이는 최신 기술 대비 각각 1.28배와 1.68배 높은 성능을 기록한다.
Data analytic applications built upon big data processing frameworks such as Apache Spark are an important class of applications. Many of these applications are not latency-sensitive and thus can run as batch jobs in data centers. By running multiple applications on a computing host, task co-location can significantly improve the server utilization and system throughput. However, effective task co-location is a non-trivial task, as it requires an understanding of the computing resource requirement of the co-running applications, in order to determine what tasks, and how many of them, can be co-located. In this paper, we present a mixture-of-experts approach to model the memory behavior of Spark applications. We achieve this by learning, off-line, a range of specialized memory models on a range of typical applications; we then determine at runtime which of the memory models, or experts, best describes the memory behavior of the target application. We show that by accurately estimating the resource level that is needed, a co-location scheme can effectively determine how many applications can be co-located on the same host to improve the system throughput, by taking into consideration the memory and CPU requirements of co-running application tasks. Our technique is applied to a set of representative data analytic applications built upon the Apache Spark framework. We evaluated our approach for system throughput and average normalized turnaround time on a multi-core cluster. Our approach achieves over 83.9% of the performance delivered using an ideal memory predictor. We obtain, on average, 8.69x improvement on system throughput and a 49% reduction on turnaround time over executing application tasks in isolation, which translates to a 1.28x and 1.68x improvement over a state-of-the-art co-location scheme for system throughput and turnaround time respectively.
연구 동기 및 목표
- 공유 호스트 상에서 지연에 민감하지 않은 Spark 애플리케이션을 공유 배치함으로써 대용량 데이터 워크로드에서 자원 활용도가 낮은 문제를 해결하기 위해.
- 사용자 제공 예측이 필요하거나 하나의 크기만 맞는 함수를 사용하는 고정된 자원 예측 모델의 한계를 극복하기 위해.
- 정확한 런타임 메모리 프로파일 예측을 통해 시스템 스루풋을 향상시키고 애플리케이션 전환 시간을 단축하기 위해.
- 애플리케이션과 데이터 특성에 따라 런타임에 전문화된 메모리 모델을 동적으로, 적응적으로 선택할 수 있도록 하기 위해.
- 수동 튜닝 없이 다양한 Spark 애플리케이션 메모리 행동을 모델링하기 위한 확장 가능하고 유연한 프레임워크를 제공하기 위해.
제안 방법
- 역사적 데이터를 사용하여 대표적인 Spark 애플리케이션에서 선별된 전문화된 메모리 모델(선형 및 비선형)을 오프라인으로 훈련한다.
- 런타임에 머신러닝 분류기를 사용하여 주어진 애플리케이션과 데이터 세트에 가장 적합한 모델(전문가)을 선택한다.
- 선택된 전문가들로부터 예측을 동적으로 조합하여 대상 Spark 애플리케이션의 메모리 프로파일을 추정한다.
- 예측 프레임워크를 런타임 작업 스케줄러와 통합하여 호환 가능한 작업들을 동일한 호스트에 공유 배치한다.
- 정확한 메모리 예측을 통해 실제 물리적 메모리 한도를 초과하지 않도록 하여 메모리 부족 오류를 방지한다.
- 새로운 모델을 추가할 수 있도록 지원하여, 적절한 경우에만 선택되도록 하여 장기적인 적응성을 확보한다.
실험 결과
연구 질문
- RQ1단일 모델 대비 다양한 Spark 애플리케이션의 메모리 프로파일 예측 정확도를 향상시키기 위해 전문가의 혼합 프레임워크가 효과적인가?
- RQ2런타임에서 전문화된 메모리 모델을 선택하는 방식이 공유 환경에서 시스템 스루풋과 애플리케이션 전환 시간에 어떤 영향을 미치는가?
- RQ3메모리 인지적 작업 공유가 Spark 기반 데이터 센터에서 자원 낭비를 어느 정도 줄일 수 있는가?
- RQ4최신 기술 대비 성능 측면에서 제안된 방법의 스루풋과 지연 시간은 어떠한가?
- RQ5모델 전체를 재훈련하지 않고도 새로운 애플리케이션을 지원하기 위해 프레임워크를 확장할 수 있는가?
주요 결과
- 제안된 방법은 이상적인 메모리 예측기 성능의 83.9% 수준의 시스템 스루풋을 달성한다.
- 평균적으로 고립 실행 대비 8.69배 높은 시스템 스루풋을 제공한다.
- 고립 실행 대비 평균 정규화된 전환 시간을 49% 감소시킨다.
- 최신 기술 대비 스루풋은 1.28배, 전환 시간은 1.68배 향상된다.
- 전문가의 혼합 프레임워크는 40노드 클러스터에서 44개의 대표적 Spark 애플리케이션에 대해 정확하고 적응적인 메모리 예측을 가능하게 한다.
- 시스템은 모델의 점진적 추가를 지원하여, 장기적으로 새로운 애플리케이션 유형을 지원할 수 있도록 프레임워크가 진화할 수 있다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.