# US 2014/0157281 A1 · Priority-based management of system load level

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0157281 A1
- Document ID: US20140157281A1
- Status: Published application
- Kind: A1
- Application number: 14/089,135
- Filed: 2013-11-25
- Published: 2014-06-05
- Earliest claimed: 2009-03-31
- Assignees: Microsoft Corporation
- Applicants: Microsoft Corporation
- Inventors: Rob Pike
- Web page: https://patentgrep.com/patent/US20140157281A1

## CPC

- G06F 9/505: {considering the load}
- G06F 9/5083: {Techniques for rebalancing the load in a distributed system}
- G06F 2209/5021: Priority
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems, methods, and computer program products are described herein for managing computer system resources. A plurality of modules (e.g., virtual machines or other applications) may be allocated across multiple computer system resources (e.g., processors, servers, etc.). Each module is assigned a priority level. Furthermore, a designated utilization level is assigned to each resource of the computer system. Each resource supports one or more of the modules, and prioritizes operation of the supported modules according to the corresponding assigned priority levels. Furthermore, each resource maintains operation of the supported modules at the designated utilization level.

## Claims

### Claim 1

A method of managing a processing system, comprising:
receiving a utilization indicator indicating a reference utilization level associated with a plurality of resources of the processing system; and
managing the resources of the processing system to maintain a load level of each resource to be substantially equal to the reference utilization level,
a processing capacity of each resource being allocated among a plurality of application modules that are executed on the resource based on the reference utilization level and priority levels associated with the application modules, each resource prioritizing operations of each of the plurality of application modules that are executed on the resource with respect to others of the plurality of application modules that are executed on the resource based on the priority levels that are associated with the application modules that are executed on the resource,
each resource being configured to:
transfer a portion of a processing capacity of the resource from a first application module having a first priority to a second application module having a second priority that is greater than the first priority in response to receipt of a request from the second application module for more of the processing capacity of the resource;
determine whether a rate at which requests for processing capacity of the resource are received from the second application module is decreasing; and
re-allocate the portion of the processing capacity of the resource from the second application module to the first application module in response to determining that the rate at which the requests for processing capacity of the resource are received from the second application module is decreasing.

### Claim 2 (depends on 1)

The method of claim 1, wherein receiving the utilization indicator includes receiving the utilization indicator indicating the reference utilization level associated with a plurality of processors of the processing system; and
wherein managing the resources includes managing the resources of the processing system to maintain the load level of each processor to be substantially equal to the reference utilization level.

### Claim 3 (depends on 1)

The method of claim 1, wherein receiving the utilization indicator includes receiving the utilization indicator indicating the reference utilization level associated with a plurality of servers of the processing system; and
wherein managing the resources includes managing the resources of the processing system to maintain the load level of each server to be substantially equal to the reference utilization level.

### Claim 4 (depends on 1)

The method of claim 1, wherein the processing capacity of each resource is allocated among a plurality of virtual machines that are executed on the resource based on the reference utilization level and priority levels associated with the virtual machines.

### Claim 5 (depends on 1)

The method of claim 1, wherein the processing capacity of each resource is allocated among a plurality of SQL server instances that are executed on the resource based on the reference utilization level and priority levels associated with the SQL server instances.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
providing a user interface element to enable selection of the plurality of priority levels.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
providing a user interface element to enable selection of the reference utilization level.

### Claim 8 (depends on 1)

The method of claim 1, wherein managing the resources includes managing the resources of the processing system to maintain an average load level of each resource to be substantially equal to the reference utilization level.

### Claim 9

A method of managing a resource, comprising:
receiving a reference utilization level;
executing a plurality of application modules on a resource of a processing system;
allocating a processing capacity of the resource among the plurality of application modules based on a plurality of priority levels associated with the plurality of application modules to cause a load level of the resource to be substantially equal to the reference utilization level, the resource prioritizing operations of each of the plurality of application modules with respect to others of the plurality of application modules based on the plurality of priority levels;
receiving a request from a first application module of the plurality of application modules for more of the processing capacity of the resource;
transferring a portion of the processing capacity of the resource from a second application module of the plurality of application modules to the first application module based on a first priority level associated with the first application module being greater than a second priority level associated with the second application module;
determining whether a rate at which requests for processing capacity of the resource are received from the first application module is decreasing; and
re-allocating the portion of the processing capacity of the resource from the first application module to the second application module in response to determining that the rate at which the requests for processing capacity of the resource are received from the first application module is decreasing.

### Claim 10 (depends on 9)

The method of claim 9, wherein receiving comprises:
receiving the reference utilization level that is associated with a plurality of resources that includes the resource.

### Claim 11 (depends on 9)

The method of claim 9, wherein allocating the processing capacity includes allocating substantially none of the processing capacity of the resource to the first application module based on the first priority level.

### Claim 12 (depends on 9)

The method of claim 9, wherein allocating the processing capacity includes allocating substantially all of the processing capacity of the resource to a first application module of the plurality of application modules based on a first priority level associated with the first application module;
wherein the method further comprises:
re-allocating the processing capacity of the resource to provide less than substantially all of the processing capacity of the resource to the first application module;
wherein receiving the request comprises:
receiving the request from the first application module in response to re-allocating the processing capacity of the resource to provide less than substantially all of the processing capacity of the resource to the first application module.

### Claim 13 (depends on 9)

The method of claim 9, further comprising:
receiving a revised priority level associated with at least one application module of the plurality of application modules; and
re-allocating the processing capacity of the resource among the plurality of application modules based on the revised priority level to cause the load level of the resource to be substantially equal to the reference utilization level.

### Claim 14 (depends on 9)

The method of claim 9, further comprising:
receiving a revised reference utilization level; and
re-allocating the processing capacity of the resource among the plurality of application modules based on the plurality of priority levels associated with the plurality of application modules to cause the load level of the resource to be substantially equal to the revised reference utilization level.

### Claim 15 (depends on 14)

The method of claim 14, wherein receiving the revised reference utilization indicator is performed in accordance with a predetermined schedule.

### Claim 16 (depends on 9)

The method of claim 9, wherein allocating the processing capacity includes allocating the processing capacity of the resource among the plurality of application modules based on the plurality of priority levels associated with the plurality of application modules to cause an average load level of the resource to be substantially equal to the reference utilization level.

### Claim 17

A computer program product comprising a computer-readable medium having computer program logic recorded thereon for enabling a processor-based system to managing a resource, the computer program product comprising:
a first program logic module for enabling the processor-based system to execute a plurality of application modules on a resource;
a second program logic module for enabling the processor-based system to allocate a processing capacity of the resource among the plurality of application modules based on a plurality of priority levels associated with the plurality of application modules to cause a load level of the resource to be substantially equal to a reference utilization level;
a third program logic module for enabling the processor-based system to prioritize operations of each of the plurality of application modules with respect to others of the plurality of application modules based on the plurality of priority levels; and
a fourth program logic module for enabling the processor-based system to transfer a portion of the processing capacity of the resource from a first application module of the plurality of application modules to a second application module of the plurality of application modules in response to a request from the second application module for more of the processing capacity of the resource, based on a second priority level associated with the second application module being greater than a first priority level associated with the first application module, the fourth program logic module comprising:
logic for enabling the processor-based system to determine whether a rate at which requests for processing capacity of the resource are received from the second application module is decreasing; and
logic for enabling the processor-based system to re-allocate the portion of the processing capacity of the resource from the second application module to the first application module in response to a determination that the rate at which the requests for processing capacity of the resource are received from the second application module is decreasing.

### Claim 18 (depends on 17)

The computer program product of claim 17, further comprising:
a fifth program logic module for enabling the processor-based system to re-allocate the processing capacity of the resource among the plurality of application modules based on the plurality of priority levels associated with the plurality of application modules to cause the load level of the resource to be substantially equal to a revised reference utilization level.

### Claim 19 (depends on 17)

The computer program product of claim 17, further comprising:
a fifth program logic module for enabling the processor-based system to provide a user interface element to enable selection of the plurality of priority levels.

### Claim 20 (depends on 17)

The computer program product of claim 17, further comprising:
a fifth program logic module for enabling the processor-based system to provide a user interface element to enable selection of the reference utilization level.
