1. A virtual machine collocating system comprising: a cluster of servers, each with at least one processor and memory; a plurality of virtual machines (VM) executing in the cluster of servers; a hypervisor executing in memory of one of the servers; and, a VM collocate module coupled to the hypervisor, the module comprising program code enabled to select a VM from amongst the plurality of VMs for server colocation, to compute an individual shared memory factor for each of a set of the plurality of VMs with respect to the selected VM by creating a first Bloom filter for each of the VMs in the set, by creating a second Bloom filter for the selected VM, wherein the first Bloom filter and the second Bloom filter are startup Bloom filters when a new VM placement is performed for the selected VM, and the first Bloom filter and the second Bloom filter are current Bloom filters when a live migration is performed for the selected VM, and by computing a logical AND operation between values of the first Bloom filter and corresponding values of the second Bloom filter for each of the VMs in the set and by adding bits of a result of the AND operation for each of the VMs to produce the individual shared memory factor for each of the VMs in the set, to determine a VM amongst the VMs in the set associated with a highest computed shared memory factor, and to co-locate the determined VM with the selected VM in a single one of the servers in the cluster.