1. A system for allocating spare resources to handle expected demand for a plurality of virtual machines (VMs), said system comprising: a memory area associated with a computing device, said memory area storing current demands each corresponding to one of the plurality of VMs, the memory area further storing a total capacity for the plurality of VMs; and a processor programmed to: calculate a dynamic entitlement for each of the plurality of VMs based on the current demands corresponding thereto; determine remaining capacity for resources of the plurality of VMs based on the calculated dynamic entitlement for the plurality of VMs and the total capacity for resources stored in the memory area; predict a future demand for each of the plurality of VMs; identify one or more of the plurality of VMs based on a comparison of the current demands with the predicted future demands; and update the calculated dynamic entitlement by allocating at least a portion of the determined remaining capacity to the identified one or more of the VMs.