1. A method to allocate a virtual machine (VM) from a plurality of virtual machines (VMs) to a physical machine (PM) from a plurality of physical machines (PMs), the method comprising: sorting the plurality of VMs according to a size attribute associated with a dominant resource requirement, wherein: the dominant resource requirement includes a memory resource attribute and a processor resource attribute, and the dominant resource requirement corresponds to largest resource demand in the plurality of VMs; sorting the plurality of 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.