Elasticity algorithms for cloud infrastructures dynamically change the amount of resources allocated to a running service according to the current and predicted future load. Since there is no perfect predictor, and since different applications' workloads have different characteristics, no single elasticity algorithm is suitable for future predictions for all workloads. In this work, we introduce WAC, a Workload Analysis and Classification tool that analyzes workloads and assigns them to the most suitable elasticity controllers based on the workloads' characteristics and a set of business level objectives.
WAC has two main components, the analyzer and the classifier. The analyzer analyzes workloads to extract some of the features used by the classifier, namely, workloads' autocorrelations and sample entropies which measure the periodicity and the burstiness of the workloads respectively. These two features are used with the business level objectives by the classifier as the features used to assign workloads to elasticity controllers. We start by analyzing $14$ real workloads available from different applications. In addition, a set of $55$ workloads is generated to test WAC on more workload configurations. We implement four state of the art elasticity algorithms. The controllers are the classes to which the classifier assigns workloads. We use a K nearest neighbors classifier and experiment with different workload combinations as training and test sets. Our experiments show that, when the classifier is tuned carefully, WAC correctly classifies between $92%$ and $98.3%$ of the workloads to the most suitable elasticity controller.
Page Responsible: Frank Drewes 2024-11-21