1. A computer-implemented method, comprising: determining, by a host controller machine, candidate hosts to place a target virtual machine (VM); obtaining, by the host controller machine, memory sharing history of the target VM with one or more VMs hosted by each of the candidate hosts; determining, by the host controller machine, an average memory sharing history amount for each of an optimized number of the candidate hosts based on the obtained memory sharing history of the target VM with one or more VMs hosted by each of the optimized number of candidate hosts; and adjusting, by the host controller machine, a score in a general selection algorithm for a candidate host with the highest average memory sharing history amount.