1. A method to allocate virtual machines to physical machines, the method comprising: sorting a plurality of virtual machines (VMs) according to a size attribute associated with a dominant resource requirement; sorting a plurality of physical machines (PMs) according to a power efficiency attribute associated with each of the plurality of PMs; selecting one of the sorted plurality of PMs based on the power efficiency attribute; selecting one of the sorted plurality of VMs based on the size attribute; allocating the selected VM to the selected PM; and in response to a determination that a residual capacity attribute of the selected PM is less than a particular threshold, discontinuing allocation of the selected VM to the selected PM.