Knapsack problems: algorithms and computer implementations
Knapsack problems: algorithms and computer implementations
Approximation algorithms for bin packing: a survey
Approximation algorithms for NP-hard problems
Disco: running commodity operating systems on scalable multiprocessors
Proceedings of the sixteenth ACM symposium on Operating systems principles
There is no asymptotic PTAS for two-dimensional vector packing
Information Processing Letters
Memory resource management in VMware ESX server
OSDI '02 Proceedings of the 5th symposium on Operating systems design and implementationCopyright restrictions prevent ACM from being able to make the PDFs for this conference available for downloading
Tight approximation algorithms for maximum general assignment problems
SODA '06 Proceedings of the seventeenth annual ACM-SIAM symposium on Discrete algorithm
Partially ordered knapsack and applications to scheduling
Discrete Applied Mathematics
An efficient approximation scheme for the one-dimensional bin-packing problem
SFCS '82 Proceedings of the 23rd Annual Symposium on Foundations of Computer Science
Submodular Approximation: Sampling-based Algorithms and Lower Bounds
FOCS '08 Proceedings of the 2008 49th Annual IEEE Symposium on Foundations of Computer Science
Memory buddies: exploiting page sharing for smart colocation in virtualized data centers
Proceedings of the 2009 ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
Difference engine: harnessing memory redundancy in virtual machines
OSDI'08 Proceedings of the 8th USENIX conference on Operating systems design and implementation
VM: placement in non-Homogeneous Iaas-clouds
ICSOC'11 Proceedings of the 9th international conference on Service-Oriented Computing
A Stable Network-Aware VM Placement for Cloud Systems
CCGRID '12 Proceedings of the 2012 12th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (ccgrid 2012)
An empirical study of memory sharing in virtual machines
USENIX ATC'12 Proceedings of the 2012 USENIX conference on Annual Technical Conference
Streaming as a hypervisor service
Proceedings of the 7th international workshop on Virtualization technologies in distributed computing
Scalable rule management for data centers
nsdi'13 Proceedings of the 10th USENIX conference on Networked Systems Design and Implementation
VM consolidation: A real case based on OpenStack Cloud
Future Generation Computer Systems
CMD: classification-based memory deduplication through page access characteristics
Proceedings of the 10th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
Hi-index | 0.01 |
Virtualization technology enables multiple virtual machines (VMs) to run on a single physical server. VMs that run on the same physical server can share memory pages that have identical content, thereby reducing the overall memory requirements on the server. We develop sharing-aware algorithms that can colocate VMs with similar page content on the same physical server to optimize the benefits of inter-VM sharing. We show that inter-VM sharing occurs in a largely hierarchical fashion, where the sharing can be attributed to VM's running the same OS platform, OS version, software libraries, or applications. We propose two hierarchical sharing models: a tree model and a more general cluster-tree model. Using a set of VM traces, we show that up to 67% percent of the inter-VM sharing is captured by the tree model and up to 82% is captured by the cluster-tree model. Next, we study two problem variants of critical interest to a virtualization service provider: the VM Maximization problem that determines the most profitable subset of the VMs that can be packed into the given set of servers, and the VM packing problem that determines the smallest set of servers that can accommodate a set of VMs. While both variants are NP-hard, we show that both admit provably good approximation schemes in the hierarchical sharing models. We show that VM maximization for the tree and cluster-tree models can be approximated in polytime to within a (1 - 1/e) factor of optimal. Further, we show that VM packing can be approximated in polytime to within a factor of O(log n) of optimal for cluster-trees and to within a factor of 3 of optimal for trees, where n is the number of VMs. Finally, we evaluate our VM packing algorithm for the tree sharing model on real-world VM traces and show that our algorithm can exploit most of the available inter-VM sharing to achieve a 32% to 50% reduction in servers and a 25% to 57% reduction in memory footprint compared to sharing-oblivious algorithms.