IP Library Granted Patent US 7,694,303
Granted Patent B2
US 7,694,303 · App. 10/848,467 · Granted Apr 6, 2010

Method for dynamic optimization of multiplexed resource partitions

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 7,694,303
App. No.
10/848,467
Granted
Apr 6, 2010
Kind
B2
Abstract

A method for dynamically allocating system resources is provided. The method initiates with identifying a goal associated with a corresponding partition of a resource being configured according to a first configuration. The method includes establishing a mathematical function yielding a value associated with the goal. Once a violation of the goal is detected due to a changing workload, alternative configurations are evaluated to meet the goal under the changing workload. Then, a highest ranked one of the alternative configurations is selected and substituted for the first configuration.

Claims (78)

1. A method for dynamically allocating system resources, comprising the operations of:

identifying an objective associated with a corresponding partition of a resource being configured according to a first configuration;

implementing the objective as a series of independent mathematical functions, such that each mathematical function contributes to a value associated with the objective;

detecting a violation of the objective due to a changing workload, wherein the method operation of detecting a violation of the objective due to a changing workload includes triggering a reconfiguration examination;

generating alternative configurations base upon constraints;

evaluating the alternative configurations to meet the objective under the changing workload;

eliminating alternative configurations from consideration based on a decision history, the decision history tracking alternative configurations which have failed to meet the objective under the changing workload;

ranking the alternative configurations;

selecting a highest ranked one of the alternative configurations; and

substituting the first configuration with the highest ranked one of the alternative configurations.

2. The method of claim 1 , wherein the objective is selected from the group of objectives consisting of an objective matching resource allocation to resource utilization, an objective representing locality of allocated system resources, and an objective representing utilization of allocated system resources.

3. The method of claim 1 , wherein the resource is a partitionable resource selected from the group consisting of processors, memory, swap space, and networking resources.

4. The method of claim 1 , wherein the method operation of evaluating alternative configurations to meet the objective under the changing workload includes,

tracking a workload history; and

normalizing the workload history.

5. The method of claim 1 , wherein the method operation of detecting a violation of the objective to a changing workload includes,

tracking the workload;

calculating a zone of control around a mean value of the objective; and

comparing the value to a distance value representing an outer limit of the zone of control, wherein if the value is greater than the distance value for a time duration, the objective is being violated.

6. The method of claim 1 , wherein the value represents a distance from the workload objective.

7. The method of claim 1 , wherein the method operation of ranking the alternative configurations includes,

comparing an amount of the resource for one of the alternative configurations with an amount of the resource for the first configuration; and

determining an impact associated with the one of the alternative configurations based upon a difference between the amounts of the resources.

8. The method of claim 1 , further comprising:

monitoring performance of the highest ranked one of the alternative configurations;

if the performance degrades, then the method includes,

repeating the operations of evaluating, selecting, and substituting in order to replace the highest ranked one of the alternative configurations

marking the highest ranked one of the alternative configurations as unacceptable to avoid use of the highest ranked one of the alternative configurations.

9. The method of claim 8 , further comprising:

setting an interval to avoid use of the highest ranked one of the alternative configurations; and

upon expiration of the interval, reconsidering use of the highest ranked one of the alternative configurations for substitution.

10. A computer storage medium having program instructions for dynamically allocating system resources, comprising:

program instructions for identifying an objective associated with a corresponding partition of a resource being configured according to a first configuration;

program instructions for identifying a constraint associated with each objective;

program instructions for detecting a violation of the objective due to a changing workload, wherein the program instructions for detecting a violation of the objective due to a changing workload includes program instructions for triggering a reconfiguration examination;

program instructions for evaluating alternative configurations to meet the objective under the changing workload;

program instructions for eliminating a number of alternative configurations from consideration based on the constraint associated with the objective and a decision history which stores alternative configurations that historically failed to meet the objective;

program instructions for ranking the alternative configurations;

program instructions for selecting a highest ranked one of the alternative configurations; and

program instructions for substituting the first configuration with the highest ranked one of the alternative configurations.

11. The computer storage medium of claim 10 , wherein the objective is selected from the group of objectives consisting of an objective matching resource allocation to resource utilization, an objective representing locality of allocated system resources, and an objective representing utilization of allocated system resources.

12. The computer storage medium of claim 10 , wherein the resource is a partitionable resource selected from the group consisting of processors, memory, swap space, and networking resources.

13. The computer storage medium of claim 10 , wherein the program instructions for evaluating alternative configurations to meet the objective under the changing workload includes,

program instructions for tracking a workload history; and

program instructions for normalizing the workload history.

14. The computer storage medium of claim 10 , wherein the program instructions for detecting a violation of the objective due to a changing workload includes,

program instructions for tracking the workload;

program instructions for calculating a zone of control around a mean value of the objective; and

program instructions for comparing the value to a distance value representing an outer limit of the zone of control, wherein if the value is greater than the distance value for a time duration, the objective is being violated.

15. The computer storage medium of claim 10 , further comprising:

program instructions for monitoring performance of the highest ranked one of the alternative configurations;

if the performance degrades, then triggering,

program instructions for repeating the operations of evaluating, selecting, and substituting in order to replace the highest ranked one of the alternative configurations

program instructions for marking the highest ranked one of the alternative configurations as unacceptable to avoid use of the highest ranked one of the alternative configurations.

16. The computer storage medium of claim 15 , further comprising:

program instructions for setting an interval to avoid use of the highest ranked one of the alternative configurations; and

program instructions for upon expiration of the interval, reconsidering use of the highest ranked one of the alternative configurations for substitution.

17. A computing device capable of dynamically allocating resources between concurrently executing workloads, comprising:

a resource having a plurality of partitions, the resource associated with a first configuration of the plurality of partitions for executing the workloads;

a dynamic resource allocation module configured to enable selection of objectives associated with each of the plurality of partitions, the dynamic resource allocation module further including,

a configuration monitoring module for collecting and analyzing data associated with the workloads;

a statistical process control module configured to smooth the data collected by the configuration monitoring, by calculating zones of control around the selected objectives, the smoothed data being analyzed to determine if one of the objectives is unsatisfied through the configuration monitoring module, the zones of control are a multiple of a standard deviation of a mean value of the selected objectives and the zones of control setting a threshold level which trigger changing the first configuration; and;

a configuration change module for changing the first configuration to a second configuration by rearranging the plurality of partitions in response to determining that the one of the objectives is unsatisfied, such that the second configuration is selected from a number of configurations not eliminated by a decision history which stores alternative configurations that historically failed to meet the objective;

wherein the dynamic resource allocation module is configured to store previously non-effective configurations for a time interval and is further configured to verify that the second configuration is different than any previously non-effective configurations prior to changing the first configuration.

18. The computing device of claim 17 , wherein the resource is selected from the group consisting of, a processor set, a memory, a swap space, and a network resource.

19. The computing device of claim 17 , wherein the statistical process control module considers both a magnitude and a duration of the data collected to smooth the collected data.

20. The computing device of claim 17 , wherein the computing device is a server.

21. The computing device of claim 17 , wherein the computing device is in communication with a plurality of clients over a distributed network, the plurality of clients generating the workloads.

22. A distributed computing resource system capable of dynamically allocating resources, comprising:

a server in communication with at least one consumer over a distributed network, the server including,

a resource having a plurality of partitions, the resource associated with a first configuration of the plurality of partitions for executing a workload associated with the at least one consumer;

a dynamic resource allocation module configured to enable selection of objectives associated with each of the plurality of partitions, the dynamic resource allocation module further including,

logic for tracking data associated with the workload;

logic for filtering the tracked data, the filtered data being analyzed to determine if one of the objectives is unsatisfied; and

logic for changing the first configuration to a second configuration by rearranging the plurality of partitions in response to determining that the one of the objectives is unsatisfied, wherein the second configuration is based on a decision history, the decision history eliminating alternative configurations which have historically failed to meet the objective under the changing workload, wherein the dynamic resource allocation module is configured to store previously non-effective configurations for a time interval, and is further configured to verify that the second configuration is different than any previously non-effective configurations prior to changing the first configuration.

23. The system of claim 22 , wherein the logic for filtering the tracked data is further configured to define a zone of control around a mean value of each of the objectives, the zone of control defining a range outside of which the objective is considered unsatisfied, and the zones of control are a multiple of a standard deviation of a mean value of the selected objectives.

24. The system of claim 22 , wherein the resource is selected from the group consisting of, a processor set, a memory, a swap space, and a network resource.

25. The system of claim 22 , wherein the logic for filtering the tracked data considers both a magnitude and a duration of the tracked data to filter the tracked data.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037306/0268 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2004
From: HAHN, STEPHEN C.; PENNINGTON, GARY
To: SUN MICROSYSTEMS, INC.
Reel/Frame 015350/0194 →