Computing servers have played a key role in developing and processing
emerging compute-intensive applications in recent years. Consolidating multiple
virtual machines (VMs) inside one server to run various applications introduces
severe competence for limited resources among VMs. Many techniques such as VM
scheduling and resource provisioning are proposed to maximize the
cost-efficiency of the computing servers while alleviating the performance
inference between VMs. However, these management techniques require accurate
performance prediction of the application running inside the VM, which is
challenging to get in the public cloud due to the black-box nature of the VMs.
From this perspective, this paper proposes a novel machine learning-based
performance prediction approach for applications running in the cloud. To
achieve high accuracy predictions for black-box VMs, the proposed method first
identifies the running application inside the virtual machine. It then selects
highly-correlated runtime metrics as the input of the machine learning approach
to accurately predict the performance level of the cloud application.
Experimental results with state-of-the-art cloud benchmarks demonstrate that
our proposed method outperforms the existing prediction methods by more than 2x
in terms of worst prediction error. In addition, we successfully tackle the
challenge in performance prediction for applications with variable workloads by
introducing the performance degradation index, which other comparison methods
fail to consider. The workflow versatility of the proposed approach has been
verified with different modern servers and VM configurations.Comment: 15 pages, 11 figures, summited to IEEE Transactions on Sustainable
Computin