[12 NOMS] Workload Characterization and Prediction in the Cloud: A Multiple Time Series Approach
0 Abstract
클라우드 컴퓨팅은 컴퓨팅 요구 사항을 충족하기 위해 high scalability, flexibility and cost-effectiveness를 약속한다. 클라우드에서 컴퓨팅 리소스를 효율적으로 프로비저닝하기 위해 시스템 관리자는 VM의 워크로드를 특성화하고 예측하는 기능이 필요하다. 이 논문에서는 실제 데이터 센터에서 얻은 데이터 추적을 사용하여 이러한 기능을 개발합니다. 먼저, 각 VM에서 실행되는 어플리케이션 간의 종속성으로 발생하는 VM 간 워크로드의 correlation를 탐색하여 repeatable workload pattern을 탐색한다. 워크로드 데이터 샘플을 time series로 처리하여 correlated workload pattern을 자주 나타내는 VM 그룹과 이러한 VM 그룹이 active한 기간을 식별하기 위한 co-clustering 기술을 개발하였다. 그런 다음 발견된 VM 클러스터의 시간적 상관관계를 특성화하고 workload pattern의 변화를 예측하기 위해 HMM(Hidden Markov Modeling)을 기반한 방법을 소개한다. 실험 결과 이 방법이 VM 그룹 수준으로 워크로드의 특성을 더 잘 이해하는 데 도움이 될 뿐만 아니라 클라우드의 워크로드 변경에 대해 보다 정확한 예측을 할 수 있음을 보여주었다.
2 Background
연구는 많은 기업 고객을 지원하는 프로덕션 클라우드 환경에서 수집된 워크로드 trace를 기반으로 한다. 각 고객은 자신에게 프로비저닝된 VM에서 비즈니스 어플리케이션을 실행한다. 각 어플리케이션에는 하나 이상의 component가 있으며 각 component는 하나 이상의 VM에서 실행된다. 서비스 공급자가 각 VM에 설치한 이러한 어플리케이션 구성은 드러나지 않는다. CPU, 메모리, 디스크 및 I/O utilization 등의 성능 데이터를 주기적으로 수집하기 위해 소프트웨어 에이전트가 모든 VM에 배포되고 데이터를 중앙 서버에 모은 다음 모든 성능 데이터를 데이터베이스에 저장한다. 연구는 이 데이터베이스에서 utilization trace를 얻었다.
에이전트는 최소 15분 단위로 CPU 워크로드 데이터를 수집한다. 분석을 위해 3명의 서로 다른 기업들이 사용하는 총 3019개의 VM에서 21일 간의 trace를 얻었다. 각 VM에 대한 trace는 time series로 구성된다. 논문에서는 분량 제한으로 인해 A 고객이 사용한 1212개의 VM에 대한 결과만 표시한다.
Figure 1은 2주 동안 수집된 3개의 VM에 대한 샘플 time series를 보여준다. 약간의 "noise"가 있긴 하지만 워크로드는 특정 패턴을 보여주었다. 아래 두 그림에서 특정 기간 동안의 워크로드 패턴의 변화를 볼 수 있다. 또한 시간에 따른 영향이나 어플리케이션 워크로드와의 상관관계로 인해 서로 다른 서버 간에 상관관계가 있는 동작이 존재한다는 점도 확인할 수 있었다. 따라서 상관관계가 있는 워크로드 패턴을 마이닝하고 이를 사용하여 VM 워크로드의 변동(variations)을 예측할 수 있었다.
3 Workload Characterization
첫 번째 목표는 여러 VM에서 공통 워크로드 패턴을 식별하는 것이다. 이를 달성하기 위해 CPU utilization time series를 여러 수준(level)으로 이산화(discretize)하였다. 데이터에서 각 VM의 CPU 사용률은 continuous time series 위에 0~100 사이의 값(백분율)으로 표시된다. 데이터를 GHMM(Gaussian Hidden Markov Model)[20]으로 피팅하여 각 time series를 5개의 워크로드 level(예: 1~5)으로 이산화하였다 (각 hidden Markov state를 워크로드 level과 일치 시킴). 다음으로 특정 워크로드 level combination이 자주 나타나는 VM 그룹을 탐색하였다.
A. Group-based Workload Analysis
B. VM Grouping by Co-clustering
1) Co-clustering Method:
Problem Statement 1:
(a) Seed Selection:
(b) Co-cluster Expansion:
(c) Overlap Removal: