System and method for CPU bandwidth allocation
First Claim
1. A method of automatically managing resource usage for a plurality of processes running on a computing device, each process being associated with a respective system priority that defines the process'"'"'s priority of access to resources, the method comprising:
- retrieving a resource usage policy defining a plurality of desired resource allocations for a respective plurality of process sets;
determining the current resource usage of processes in a particular process set;
determining the past resource usage of processes in the particular process set during a predetermined past period;
if the current resource usage is less than the resource allocation for the particular process set, and if the past resource usage is less than the resource allocation for the particular process set, raising priorities associated with all processes of the particular process set by a first increment;
if the current resource usage is less than the resource allocation for the particular process set, and if the past resource usage is not less than the resource allocation for the particular process set, raising the priorities associated with all processes of the particular process set by a second increment, wherein the second increment is less than the first increment; and
automatically lowering the resource allocation for the particular process set by a decrement amount and raising the resource allocation for at least one other process set by the decrement amount, by;
identifying a plurality of sibling process sets that share a common parent set with the particular process set, each of the plurality of sibling process sets having a desired resource allocation defined by the policy; and
assigning a portion of the resource allocation of the particular set to each sibling process set to create respective resource reallocations for the sibling process sets, such that the mutual proportions of the resource reallocations of the sibling process sets are substantially the same as the resource allocations of the sibling process sets.
2 Assignments
0 Petitions
Accused Products
Abstract
An automatic resource management service implements a policy to automatically control resource usage by processes running on a computer. A policy expresses criteria for identifying process sets, and imposes allocations and sub-allocations or resource amounts to be used by given process sets and subsets. Exclusion lists are used in an embodiment of the invention to exclude processes from management by the management service. In an embodiment of the invention the resources whose use is managed are CPU resources, although in further embodiments the managed resources include memory resources as well.
-
Citations
10 Claims
-
1. A method of automatically managing resource usage for a plurality of processes running on a computing device, each process being associated with a respective system priority that defines the process'"'"'s priority of access to resources, the method comprising:
-
retrieving a resource usage policy defining a plurality of desired resource allocations for a respective plurality of process sets; determining the current resource usage of processes in a particular process set; determining the past resource usage of processes in the particular process set during a predetermined past period; if the current resource usage is less than the resource allocation for the particular process set, and if the past resource usage is less than the resource allocation for the particular process set, raising priorities associated with all processes of the particular process set by a first increment; if the current resource usage is less than the resource allocation for the particular process set, and if the past resource usage is not less than the resource allocation for the particular process set, raising the priorities associated with all processes of the particular process set by a second increment, wherein the second increment is less than the first increment; and automatically lowering the resource allocation for the particular process set by a decrement amount and raising the resource allocation for at least one other process set by the decrement amount, by; identifying a plurality of sibling process sets that share a common parent set with the particular process set, each of the plurality of sibling process sets having a desired resource allocation defined by the policy; and assigning a portion of the resource allocation of the particular set to each sibling process set to create respective resource reallocations for the sibling process sets, such that the mutual proportions of the resource reallocations of the sibling process sets are substantially the same as the resource allocations of the sibling process sets. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer-readable medium having stored thereon computer-executable instructions for executing the steps of:
-
retrieving a resource usage policy defining a plurality of desired resource allocations for a respective plurality of process sets; determining the current resource usage of processes in a particular process set; determining the past resource usage of processes in the particular process set during a predetermined past period; if the current resource usage is less than the resource allocation for the particular process set, and if the past resource usage is less than the resource allocation for the particular process set, raising priorities associated with all processes of the particular process set by a first increment; if the current resource usage is less than the resource allocation for the particular process set, and if the past resource usage is not less than the resource allocation for the particular process set, raising the priorities associated with all processes of the particular process set by a second increment, wherein the second increment is less than the first increment; and automatically lowering the resource allocation for the particular process set by a decrement amount and raising the resource allocation for at least one other process set by the decrement amount, by; identifying a plurality of sibling process sets that share a common parent set with the particular process set, each of the plurality of sibling process sets having a desired resource allocation defined by the policy; and assigning a portion of the resource allocation of the particular set to each sibling process set to create respective resource reallocations for the sibling process sets, such that the mutual proportions of the resource reallocations of the sibling process sets are substantially the same as the resource allocations of the sibling process sets.
-
Specification