0 Abstract
현재까지의 클라우드 연구에는 클라우드 제공업체의 VM 워크로드의 특성에 대한 데이터가 부족했다. 효과 적인 자원 관리 시스템(resource management system)을 위해서는 이러한 특성에 대한 이해가 필요하다. 여기에는 VM scheduler, power manager, server health manager 등이 포함된다. 이 논문에서는 먼저 distributions of VM lifetime, deployment size, resource consumption을 정보를 사용하여 Microsoft Azure VM 워크로드의 chracteristic을 보여준다. 그런 다음 특정 VM 동작이 여러 lifetime 동안 상당히 일관성 있게 나타나는 것을 보여준다. 즉, 기록 자체가 미래 동작의 정확한 예측 변수라고 할 수 있다. 이 관찰을 기반으로 VM telemetry를 수집하고 이러한 동작을 오프라인 학습한 뒤 일반 클라이언트 측 라이브러리를 통해 다양한 리소스 관리자에게 온라인 예측을 제공하는 시스템인 RC(Resource Central)를 소개한다. RC의 온라인 예측을 사용하는 방법으로, 높은 VM 성능을 유지하면서 oversubscribing server(oversubscribable VM type)에서 예측을 활용하도록 Azure의 VM scheduler를 수정한다. 실제 VM trace를 사용하여 예측된 정보를 사용한 스케쥴링이 utilization을 높이고 물리적 resource exhaustion(리소스 고갈)을 방지할 수 있는 것을 보여준다. 논문에서는 클라우드 제공업체가 워크로드의 특성과 머신 러닝을 활용하여 리소스 관리를 상당히 개선할 수 있다고 결론지었다.
1 Introduction
Summary and conclusions
• Microsoft Azure의 여러 VM 워크로드 동작에 대한 자세한 characterization을 제시한다.
• VM 워크로드는 정확하게 예측될 수 있음을 보여준다.
• 이러한 예측을 생성, 저장 및 사용하기 위한 대규모 시스템인 Resource Central에 대해 설명한다.
• 예측을 활용하도록 Azure의 VM 스케줄러 수정하여 server selection을 개선하였다.
• Resource Central과 수정된 VM 스케줄러를 평가한 결과를 제시한다.
• 커뮤니티에서 사용할 수 있는 대규모 VM 데이터 세트를 만들었다.
클라우드 공급자가 워크로드의 특성과 머신 러닝 기술을 활용하여 리소스 관리를 상당히 개선할 수 있다고 결론지었다.
2 Related Work
Cloud VM workload characterization (Cloud에서 VM 워크로드의 특성: 컨테이너 기반 워크로드와 비교)
Resource demand volatility와 pricing에만 초점을 맞춘 [15]를 제외하고 실제 퍼블릭 클라우드 제공자의 VM 워크로드에 대한 characterization들은 모른다. 다른 연구에서는 클라우드 플랫폼 성능[16]과 사용자가 클라우드에서 서비스를 구현하는 방법[11]에 대해서 연구했다.
[11] He, K., Fisher, A., Wang, L., Gember, A., Akella, A., and Ristenpart, T. Next Stop, the Cloud: Understanding Modern Web Service Deployment in EC2 and Azure. In Proceedings of the 2013 Internet Measurement Conference (2013)
[15] Kilcioglu, C., Rao, J., Kannan, A., and McAfee, R. P. Usage Patterns and the Economics of the Public Cloud. In Proceedings of the 26th International World Wide Web Conference (2017).
[16] Li, A., Yang, X., Kandula, S., and Zhang, M. CloudCmp: Comparing Public Cloud Providers. In Proceedings of the 10th ACM SIGCOMM Conference on Internet Measurement (2010).
가장 가까운 사전 연구[8, 19, 22]는 퍼블릭 클라우드 워크로드를 다루지 않고, 오히려 Google에서 자사 컨테이너 기반(즉, VM이 아닌) 워크로드를 실행하는 12,000개의 베어메탈 서버에 대한 한 달 간의 추적을 특성화하였다 [25]. 대조적으로 이 연구에서는 다른 회사에서 운용하는 VM들을 포함하여 3개월 동안 Azure의 전체 VM 워크로드를 특성화하였다. 실제로 타사의 VM은 Section 3에서 볼 수 있듯이 자사 VM과 다른 특성을 나타내는 경우가 많다.
[8] Di, S., Kondo, D., and Cirne, W. Characterization and Comparison of Cloud versus Grid Workloads. In Proceedings of the 2012 International Conference on Cluster Computing (2012). [12 CLUSTER]
[19] Mishra, A. K., Hellerstein, J. L., Cirne, W., and Das, C. R. Towards Characterizing Cloud Backend Workloads: Insights from Google Compute Clusters. SIGMETRICS Perform. Eval. Rev. 37, 4 (Mar. 2010). [10 SIGMETRICS]
[22] Reiss, C., Tumanov, A., Ganger, G. R., Katz, R. H., and Kozuch, M. A. Heterogeneity and Dynamicity of Clouds at Scale: Google Trace Analysis. In Proceedings of the 3rd Symposium on Cloud Computing (2012). [12 SoCC]
더 중요한 것은 VM 워크로드는 베어메탈 컨테이너 워크로드와 근본적으로 다르다. 주로 보안상의 이유로 퍼블릭 클라우드 제공업체는 VM을 사용하여 고객의 워크로드를 encapsulation한다. 하지만 VM은 베어메탈에서 실행되는 컨테이너보다 더 높은 creation/termination 오버헤드를 부과하므로 더 오래 사용하고 lower resource utilization의 비율을 줄이고 더 적은 개수로 배포된다. 예를 들어 multiple MapReduce 작업을 실행하려는 사용자는 작업의 최대 리소스 요구 사항에 맞는 크기의 VM 집합을 만들고 모든 작업이 완료되었을 때만 VM을 destroy/shutdown 한다. 컨테이너 기반 시스템에서는 각 map과 reduce 작업은 해당 작업에 대해 더 알맞은 크기를 가지는 수 있는 다른 컨테이너를 받아서 사용한다. 또 다른 예로, 각 사용자에게 VM을 할당하는 서비스(예: gaming)는 VM을 pool하고 reuse할 수 있으므로 VM creation의 오버헤드가 사용자에게 나타나지는 않는다.
Machine learning and prediction-serving systems
기존 연구들은 머신러닝 모델을 만들기 위한 TensorFlow, Caffe, MLLib과 같은 여러 프레임워크를 제안하였다. 이 논문에서는 이러한 방식과 상관없이 TLC에 의존한다. TLC는 많은 학습 알고리즘을 구현한 Microsoft 내부 최첨단 프레임워크이다.
대신 RC는 최근의 prediction-serving[5, 6, 10] 시스템과 유사하다. 이러한 시스템과 달리 RC는 클라이언트 측에서 예측 결과, 모델 그리고 feautre dadta를 캐시한다. 이 접근법을 사용하면 data store 또는 connectivity를 사용할 수 없는 경우에도 시스템이 동작할 수 있다. 추가적으로 critical performance path에서 interconnect 및 store를 제거하여 더 높은 성능을 제공할 수 있다.
Predicting cloud workloads
워크로드 행동 예측에 대한 연구는 매우 많다. 이러한 작업은 provisioning 또는 scheduling을 목적으로 resource demand, resource utilization, or job/task length를 예측한다[4, 9, 12, 14, 23]. 대조적으로, 이 연구에서는 더 광범위한 목적(health management and power capping [26])을 위해 보다 광범위한 VM 동작(VM lifetimes, maximum deployment sizes, and workload classes)을 예측합니다. 가장 중요한 것은 예측 결과가 실제 클라우드 플랫폼, 해당 워크로드 및 기계 학습 프레임워크에서 파생된다는 것입니다.
[4] Calheiros, R. N., Masoumi, E., Ranjan, R., and Buyya, R. Workload Prediction Using ARIMA Model and its Impact on Cloud Applications’ QoS. IEEE Transactions on Cloud Computing 3, 4 (2015). [15 Transactions on Cloud Computing]
[9] Gong, Z., Gu, X., and Wilkes, J. Press: Predictive Elastic Resource Scaling for Cloud Systems. In Proceedings of the International Conference on Network and Service Management (2010). [10 CNSM]
[12] Islam, S., Keung, J., Lee, K., and Liu, A. Empirical Prediction Models for Adaptive Resource Provisioning in the Cloud. Future Generation Computer Systems 28, 1 (2012). [12 Future Generation]
[14] Khan, A., Yan, X., Tao, S., and Anerousis, N. Workload Characterization and Prediction in the Cloud: A Multiple Time Series Approach. In Proceedings of the International Conference on Network and Service Management (2012). [12 CNSM]
[23] Roy, N., Dubey, A., and Gokhale, A. Efficient Autoscaling in the Cloud Using Predictive Models for Workload Forecasting. In Proceedings of the International Conference on Cloud Computing (2011). [11 CLOUD]
Prediction-based scheduling
The literature on task/container/VM scheduling is also vast. Many of these works use online predictions of resource usage or performance interference [3, 7, 20, 27]. Unfortunately, they are often impractical for a large provider, relying on (offline or online) workload profiling, application-level performance monitoring, shortterm load predictions, and/or aggressive resource reallocation (e.g., via live migration). Live migration is particularly problematic, as it retains contended server resources and may produce traffic bursts; it is better to place VMs where they can stay. Thus, as an example of RC’s online use, we propose changes to Azure’s VM scheduler that leverage predictions of long-term high-percentile resource usage to implement oversubscription in a safe and practical manner.
To guarantee within-server performance isolation across VMs, we also need mechanisms for interference detection (e.g., hardware counters [20, 27]) and prevention (e.g., finegrained resource partitioning [17]), but they are orthogonal to our work. For example, Heracles (fine) and RC (coarse) operate at different granularities and time-scales. RC is needed in first placing VMs on servers, so Heracles does not have to overly punish whatever workloads are considered lowpriority on the chosen server.
[3] Bobroff, N., Kochut, A., and Beaty, K. Dynamic Placement of Virtual Machines for Managing SLA Violations. In Proceedings of the International Symposium on Integrated Network Management (2007). [07 IM]
[7] Delimitrou, C., and Kozyrakis, C. Quasar: Resource-Efficient and QoS-Aware Cluster Management. In Proceedings of the 19th International Conference on Architectural Support for Programming Languages and Operating Systems (2014). [14 ASPLOS]
[17] Lo, D., Cheng, L., Govindaraju, R., Ranganathan, P., and Kozyrakis, C. Heracles: Improving Resource Efficiency at Scale. In Proceedings of the 42nd Annual International Symposium on Computer Architecture (2015). [15 ISCA]
[20] Novakovic, D., Vasic, N., Novakovic, S., Kostic, D., and Bianchini, R. DeepDive: Transparently Identifying and Managing Performance Interference in Virtualized Environments. In Proceedings of the USENIX Annual Technical Conference (2013). [13 ATC]
[27] Yang, H., Breslow, A., Mars, J., and Tang, L. Bubble-flux: Precise Online QoS Management for Increased Utilization in Warehouse Scale Computers. In Proceedings of the 40th Annual International Symposium on Computer Architecture (2013). [13 ISCA]
3 Characterizing Cloud VM Workloads
We now explore several aspects of Azure’s VM workload. Understanding them enables many platform optimizations.
Context and terminology
Dataset
Focus
3.1 VM type
Entire cloud platform perspective
Per-subscription perspective
Implications for resource management
3.2 Virtual resource usage
Entire cloud platform perspective
Per-subscription perspective
Implications for resource management
3.3 VM size
Entire cloud platform perspective
Per-subscription perspective
Implications for resource management
3.4 Maximum deployment size
Entire cloud platform perspective
Per-subscription perspective
Implications for resource management
3.5 VM lifetime
Entire cloud platform perspective
Per-subscription perspective
Implications for resource management
3.6 Workload class
Entire cloud platform perspective
Per-subscription perspective
Implications for resource management
3.7 VM inter-arrival times
Implications for resource management
3.8 Correlations between metrics
4 Resource Central
4.1 Example RC use-cases
Smart VM scheduling
Smart cluster selection
Smart power oversubscription and capping
Scheduling server maintenance
RecommendingVM and deployment sizes
4.2 Design and implementation
Principles
Our design for RC follows a few principles:
(1) For performance and availability, RC should be an independent and general system that is off the critical performance and availability paths of the systems that use it.
(2) For maintainability, it should be simple and rely on any existing well-supported infrastructures.
(3) For usability, it should require minimal modifications to the systems that use it, and provide an interface that is general enough for many use-cases.
Overview
ML modeling approaches
RC는 data analyst가 선택한 특정 모델링 접근 방식에 불가지론적이다(여러 방법으로 사용할 수 있으므로 딱히 정해진 답은 없음). 현재 구현에서 data analyst는 data processing cluster에서 실행되는 대규모 ML repository에서 모델들을 선택할 수 있다. 그 repository는 클라이언트에서 모델을 실행하기 위한 라이브러리도 제공한다.
Table 1의 왼쪽에 있는 세 개의 열은 section 3의 metric에 대해 현재 사용하는 모델링 접근 방식을 보여준다. Random Forests, Extreme Gradient Boosting Trees를 분류기(classifier)로 사용하고 FFT(Fast Fourier Transform)를 사용하여 utilization timeseries에서의 주기성(periodicity)을 탐색한다. 각 모델은 많은 feature을 입력으로 사용하는데, 이들은 더 적은 수의 attributes(예: VM type, VM size, guest operating system)에서 파생된 값이다. 이러한 feature의 예측 값으로 RC는 이전에 본 적이 없는 VM에 대해 예측할 수 있다.
Numeric metrics를 classify하기 위해 space of possible predictions을 소수의 bucket으로 나눈다. 회귀 알고리즘이 아닌 bucket이 있는 classifier로 이러한 모델을 공식화(formulating)하면 메트릭을 더 쉽게 예측할 수 있다. 예를 들어 utilization이 정확히 53%가 될 것이라고 예측하는 것보다 utilization이 50%에서 75% 사이가 될 것이라고 예측하는 것이 더 쉽다. 예측을 숫자로 변환해야 하는 경우 클라이언트는 예측된 bucket에 대해 가장 높은 값, 중간 값 또는 가장 낮은 값을 가정할 수 있다.
Client DLL
클라이언트별로 구성할 수 있습니다. 모델 이름이 주어지면 모델 사양에서 클라이언트 입력을 해석하는 방법을 찾습니다. 메모리의 저장소에서 예측 결과, 모델 및 기능 데이터를 캐시합니다.
Cache management
Justification
5 Case Study: RC-Informed VM Scheduling
VM scheduler
Leveraging RC predictions for oversubscription
Implementation as a soft rule
Mispredictions and lack of predictions
Justification
6 Evaluation
6.1 RC prediction quality and performance Prediction quality
Performance
6.2 Case study: RC-informed VM scheduling
Methodology
Comparing schedulers
Sensitivity to amount of oversubscription
Sensitivity to target max server utilization
Sensitivity to VM resource utilization
7 Conclusion
이 백서에서는 Azure의 VM 워크로드를 자세히 설명하고 워크로드의 특성을 활용하여 리소스 관리를 개선하는 방법에 대해 설명했습니다. 그런 다음 이러한 특성의 예측을 생성, 저장 및 효율적으로 사용하는 시스템인 Resource Central을 도입했습니다. 마지막으로 이러한 예측을 활용하는 Azure의 프로덕션 VM 스케줄러에 대한 변경 사항을 설명했습니다. 우리의 결과는 Resource Central이 잘 수행되고 정확한 예측을 생성하며 안전한 CPU 초과 구독을 가능하게 함을 보여줍니다. 우리는 공급자가 기계 학습과 효율적인 예측 제공 시스템을 사용하여 많은 관리 작업에서 워크로드의 특성을 활용할 수 있다고 결론지었습니다.