I totally agree with Duncan Epping when he says do not use limits! Read his post and come back here.
Do not use limits indeed because of the serious performance penalties, point taken. Now what about reservations!?
That features allows you allocate a certain amount of resources, that is CPU, Memory, Disk priority and Shares. The goal is to allow you to make sure in any circumstances, your VM, or set of VMs if you use Resource Pool, won’t suffer from resources starvation, that they will always have a dedicated amount of resources NOT ‘shared’ with the other VMs.
That allows you to run production, test, and development VMs on the same host or group of hosts, and for each category create a Resource Pool to allocate predefined amount of resources. VMs belonging to the Resource Pool will benefit from the reservations.
Resource Pool is quite simple and unfortunately static. Sometimes you need to allocated more resources to a pool of VMs at certain period of the month or quater for instance, resources that you can then redistribute to other VMs after the peak is over. The current Resource Pool is not dynamic but there is a tool, a great tool I should say, that allows you to schedule the Resource Pool, it is called Resource Pool Scheduler, written by Ricky El-Qasem at Virtualizeplanet.com
I won’t be surprise if VMware will add that feature into his product quite soon 🙂