1. A computer-implemented method, comprising: identifying, by a host controller computing device, characteristics of a new virtual machine (VM) to be placed by the host controller on one of a plurality of candidate host machines; for each candidate host machine of the plurality of candidate host machines, communicating, by the host controller computing device, with one or more VM agents that are each associated with a VM of one or more VMs hosted by the candidate host machine in order to identify characteristics of the one or more VMs; and identifying, by the host controller computing device, the candidate host with the most VMs having similar characteristics to the new VM.