System computing resources are dynamically managed by a resource management layer together with resource server pool. A group monitor collects data of server operation (e.g., CPU usage, memory consumption, queue size) in a particular group (e.g., customer-facing servers, job servers). The group monitor: calculates a weighted score for each server, sorts the scores of each server, maintains a sequence of scores, and periodically reports the score list to a resource manager. When an incoming request is directed to a particular server group, the group monitor redirects the request to a lowest-scoring server, and recalculates/sorts the score list. The resource manager monitors and throttles the servers in each group. Where servers in a group are experiencing high workload, the manager adds to the group server(s) from the resource pool. Conversely, where server group members are experiencing a low workload, the manager removes the lowest scoring server(s) to the resource pool.