1. A computer-implemented method that manages allocation of computer resources, said method comprising: storing in at least one non-transitory computer memory, data and instructions pertaining to computer resources in a computer network; accessing the at least one computer memory by a computer processor to execute instructions stored at said non-transitory computer memory, and to perform steps including: receiving a request to allocate CPU slots, said request associated with one or more instances of an application; identifying a resource group comprising at least two servers having idle CPU slots; determining a value representative of the number of running instances of the application on each server in the resource group; determining a value representative of the free memory on each server in the resource group; sorting servers in the resource group in an order, excluding servers with no free memory, by the amount of free memory of the servers; and allocating one CPU slot at a time from the list of eligible servers sorted in an order in a round-robin fashion.