1. A computer-implemented method, comprising: analyzing the software image content of a plurality of virtual machines running on a plurality of hypervisors in a common migration domain; identifying two or more of the virtual machines having greater than a threshold amount of common memory pages; placing the two or more virtual machines under a common hypervisor; and sharing the common memory pages among the two or more virtual machines.