IP Library › Granted Patent US 9,363,197
Granted Patent B2
US 9,363,197 · App. 14/295,191 · Granted Jun 7, 2016

Resource allocation in computers

Inventor: Carl A. Waldspurger (Palo Alto, CA)
Assignee: VMware, Inc.
H04L47/76G06F9/4881G06F9/5016H04L43/08
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,363,197
App. No.
14/295,191
Granted
Jun 7, 2016
Kind
B2
Abstract

A method and tangible medium embodying code for allocating resource units of an allocatable resource among a plurality of clients in a computer is described. In the method, resource units are initially distributed among the clients by assigning to each of the clients a nominal share of the allocatable resource. For each client, a current allocation of resource units is determined. A metric is evaluated for each client, the metric being a function both of the nominal share and a usage-based factor, the usage-based factor being a function of a measure of resource units that the client is actively using and a measure of resource units that the client is not actively using. A resource unit can be reclaimed from a client when the metric for that client meets a predetermined criterion.

Claims (37)

1. A method comprising:

receiving, from a first client of a set of clients, a request for a resource unit;

based on the received request, evaluating, for respective clients in the set of clients, a metric that is a function of at least a usage-based factor; and

upon evaluating, when the metric for a second client from the set of clients meets a predetermined criteria:

reclaiming a first resource unit from the second client; and

reallocating the first resource unit from the second client to the first client.

2. The method of claim 1 , wherein the usage-based factor is a function of a first measure of a subset of resource units allocated to the respective clients and that are actively being used by the respective clients, and a second measure of subset of resource units allocated to the respective clients that the respective clients are not actively using.

3. The method of claim 2 , further comprising identifying the resource units allocated to the respective clients that the respective clients are not actively using by determining the resource units allocated to the respective clients that the respective clients are not actively using during a predefined time period.

4. The method of claim 1 , wherein the usage-based factor is a cost function, the cost function being a combination of a first measure of resource units the respective clients are using and a second measure of resource units the respective clients are allocated and are not actively using, and multiplying the second measure in the cost function by a cost factor.

5. The method of claim 4 , wherein a cost factor for the first client is not the same as a cost factor for the second client.

6. The method of claim 1 , wherein reallocating the first resource unit from the second client to the first client enables the first client to exceed a number of resource units the first client is entitled to for allocation.

7. The method of claim 6 , wherein the number of resource units the first client is entitled to for allocation is zero.

8. A system comprising:

a plurality of clients, the plurality of clients comprising a first client and a second client; and

a processor programmed to:

receive, from the first client, a request for a resource unit;

based on the received request, evaluating, for respective clients in the plurality of clients, a metric that is a function of a usage-based factor; and

upon evaluating, when the metric for the second client meets a predetermined criteria:

reclaim a first resource unit from the second client; and

reallocate the first resource unit from the second client to the first client.

9. The system of claim 8 , wherein the usage-based factor is a function of a first measure of a subset of resource units allocated to the respective clients and that are actively being used by the respective clients, and a second measure of subset of resource units allocated to the respective clients that the respective clients are not actively using.

10. The system of claim 9 , wherein the processor is further programmed to identify the resource units allocated to the respective clients that the respective clients are not actively using by determining the resource units allocated to the respective clients that the respective clients are not actively using during a predefined time period.

11. The system of claim 9 , wherein the usage-based factor is a cost function, the cost function being a combination of a first measure of resource units the respective clients are using and a second measure of resource units the respective clients are allocated and are not actively using, and multiplying the second measure in the cost function by a cost factor.

12. The system of claim 11 , wherein a cost factor for the first client is not the same as a cost factor for the second client.

13. The system of claim 11 , wherein the cost factor is increased based on an increase in the second measure.

14. The system of claim 8 , wherein reallocating the first resource unit from the second client to the first client enables the first client to exceed a number of resource units the first client is entitled to for allocation.

15. One or more non-transitory computer-readable media having computer executable instructions thereon, that when executed by one or more processors, cause the one or more processors to:

receive, from a first client of a set of clients, a request for a resource unit;

based on the received request, evaluate, for respective clients in the set of clients, a metric that is a function of at least a usage-based factor; and

upon evaluating, when the metric for a second client from the set of clients meets a predetermined criteria:

reclaim a first resource unit from the second client; and

reallocate the first resource unit from the second client to the first client.

16. The or more non-transitory computer-readable media of claim 15 , wherein the usage-based factor is a function of a first measure of a subset of resource units allocated to the respective clients and that are actively being used by the respective clients, and a second measure of subset of resource units allocated to the respective clients that the respective clients are not actively using.

17. The or more non-transitory computer-readable media of claim 16 , wherein the computer executable instructions further cause the one or more processors to identify the resource units allocated to the respective clients that the respective clients are not actively using by determining the resource units allocated to the respective clients that the respective clients are not actively using during a predefined time period.

18. The or more non-transitory computer-readable media of claim 15 , wherein the usage-based factor is a cost function, the cost function being a combination of a first measure of resource units the respective clients are using and a second measure of resource units the respective clients are allocated and are not actively using, and multiplying the second measure in the cost function by a cost factor.

19. The or more non-transitory computer-readable media of claim 18 , wherein a cost factor for the first client is not the same as a cost factor for the second client.

20. The or more non-transitory computer-readable media of claim 14 , wherein reallocating the first resource unit from the second client to the first client enables the first client to exceed a number of resource units the first client is entitled to for allocation.

Continuity (4)
Continuation 13460746 · Apr 30, 2012
Continuation 12027853 · Feb 7, 2008
Continuation 09952796 · Sep 12, 2001
Related Publication 20150074263A1 · Mar 12, 2015