150 likes | 273 Views
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.
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