1. A method, comprising: identifying, by a host controller device, a virtual machine (VM) image template of a new VM to be placed by the host controller device on one of a plurality of candidate host machines; for each candidate host machine of the plurality of candidate host machines: locating, via communication with a memory sharing agent executing on the candidate host machine, a VM image template of each VM hosted by the candidate host machine, wherein the VM image template of each VM is stored on the candidate host machine in an individual storage associated with each VM or a common storage for one or more VMs; and identifying a number of VMs hosted by the candidate host machine associated with a VM image template that is identical to the VM image template of the new VM to be placed; identifying, by the host controller device, a candidate host machine from the plurality of candidate host machines comprising a most number of VMs with identical VM image templates to the VM image template of the new VM; selecting, by the host controller device, the identified candidate host machine to host the new VM; and placing, by the host controller device, the new VM on the identified candidate host machine, wherein the memory sharing agent executing on the identified candidate host machine implements a page merging feature to further consolidate memory pages of the new VM with memory pages of the VMs already hosted on the identified candidate host machine to reduce overall memory consumption on the identified candidate host machine.