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, a memory sharing history of the target VM with VMs hosted by each of the candidate hosts; for each candidate host in a set of the candidate hosts, determining, by the host controller machine, an average memory sharing history amount based on the memory sharing history of the target VM with the VMs hosted by the candidate host, wherein the average memory sharing history amount for a candidate host is determined only for the VMs hosted by the candidate hosts that have a standard deviation of memory sharing history below a threshold amount of memory sharing history with the target VM over a predetermined time interval; and adjusting, by the host controller machine, a general selection algorithm for the candidate host of the set of candidate hosts having a highest value of the average memory sharing history amount with the target VM.