150 likes | 282 Vues
This report discusses a novel approach to scaling virtual machines (VMs) based on workload assessments. By implementing a Majority Vote algorithm, the system scales VMs based on the load of currently running instances. If most VMs exceed a given CPU threshold, the algorithm determines the necessary number of VMs. Dimension Reduction techniques such as Principal Component Analysis (PCA) are applied to metrics like CPU usage, memory, and network traffic to create new performance indicators. The optimized model leverages regression analysis to predict performance based on these metrics.
E N D
Progress Report 04/25/2012
Scaling Algorithms • Workload-based • Compare the number of VM needed to the number of running VM. • Can scale multiple VMs once. • Majority Vote • Scale if most of the VMs are over/under-load. • Scale only one VM at a time. • Not sure how many to scale.
Improvement for Majority Vote • Assume that the workloads on each running VM is inversely proportional to the number of running VM. • We sum up the loading of each VM, and divide by threshold to get the number of running VM needed.
Example • CPU loading: • VM_A:90% • VM_B:99% • VM_C:100% • CPU threshold: 70% • VM needed: • Ceil((90+99+100)/70) = Ceil(4.128…)=5
Rationale • Majority Vote can not distinguish “how busy”. • “100 requests/sec and 1,000 requests/sec both make CPU loading 100%.” • Scale multiple times instead of one to get the right number of running VM.
Possible Reason • Our workload changes too often and too drastic.
Dimension Reduction CPU, Load_one, Load_five, Load_fifteen PCA CPU Indicator pkg_in, pkg_out, byte_in, byte_out PCA Network Indicator Memory Memory Indicator
PCA on Each Component • Apply PCA to the metrics from each component. • CPU: • CPU(%), Load_one, Load_five, Load_fifteen • Memory: • Memory(%) • Network: • pkg_in, pkg_out, byte_in, byte_out • Form a new metric for each component. • CPU’, Memory’, Network’
Principle Component Analysis[1] • A mathematical procedure that uses an orthogonal transformation to convert a set of observations of possibly correlated variables into a set of values of uncorrelated variables called principal components. [1] http://en.wikipedia.org/wiki/Principal_component_analysis
Next • Use regression analysis to predict performance from these new metrics. • Predict performance = • a*CPU’ + b*Network’ + c*Memory + d
Paper Study • CGO 2012: Compiling for Niceness