IP Library Granted Patent US 11,650,853
Granted Patent B2
US 11,650,853 · App. 17/205,277 · Granted May 16, 2023

Systems and methods for managing resources in resource-consuming computational systems and processes

Inventors: Pankaj Batra (Boston, MA); Evan Frenn (Boston, MA); Eric Gandt (Boston, MA); David Ohsie (Boston, MA); Peter Sweeney (Boston, MA); Sankar Veeramoni (Boston, MA)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F9/5055G06F9/45533
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 11,650,853
App. No.
17/205,277
Granted
May 16, 2023
Kind
B2
Abstract

Various approaches for allocating resources to multiple virtual machines include identifying multiple reserved instances, each specifying a quantity of one or more computational resources compatible with the feasible resource template for the VMs; computationally generating, for each of the VMs, an instance-ranking list indicating a ranking order of the reserved instances having templates feasible for the VM; computationally generating, for each of the reserved instances, a VM-ranking list indicating a ranking order of the VMs to which the resources specified by the reserved instance may be allocated; and based at least in part on the instance-ranking list and the VM-ranking list, computationally mapping each of the VMs to one of the reserved instances.

Claims (32)

1. A method of allocating resources to a plurality of virtual machines (VMs), each of the VMs being associated with a feasible resource template specifying minimum resources required to execute the VM, the method comprising:

uploading a workload to at least one VM of the plurality of VMs for execution of the workload;

identifying a plurality of reserved instances (RIs), wherein each RI specifies a set of computational resources that is compatible with the feasible resource template associated with the at least one VM for execution of the workload for a fixed time period;

computationally generating, for the at least one VM, an instance-ranking list indicating a ranking order of the RIs having templates that are compatible with the feasible resource template associated with the at least one VM;

computationally generating, for each RI, a VM-ranking list indicating a ranking order of the VMs to which the set of computational resources specified by each RI may be allocated;

based at least in part on the instance-ranking list and the VM-ranking list, computationally mapping the at least one VM to a corresponding RI of the RIs;

allocating the set of computational resources specified by the corresponding RI to the at least one VM based on the mapping; and

monitoring a use of the set of computational resources by the at least one VM using a processor that tracks actual resource utilization over time to determine if the set of computational resources allocated to the at least one VM needs to be updated to execute the workload.

2. The method of claim 1 , wherein the ranking order of the RIs in the instance-ranking list and/or the ranking order of the VMs in the VM-ranking list is determined based on at least one priority factor selected from the group consisting of a cost saving, an affinity between the VMs and the RIs, an association between the VMs and an instance type of each RI, an association between the VMs and a family of the instance type to which each RI belongs, and a usage constraint associated with each RI.

3. The method of claim 2 , wherein, for each RI, the ranking order of the VM-ranking list is determined based on the following order of priority factors: (i) the cost saving associated with the VMs, (ii) the affinity between each RI and the VMs, (iii) the association between the instance type of each RI and the VMs, and (iv) the association between the family of the instance type to which each RI belongs to and the VMs.

4. The method of claim 2 , wherein, for the at least one VM, the ranking order of the Ms in the instance-ranking list is determined based on the following order of priority factors: (i) the cost saving associated with each RI, (ii) the affinity between the at least one VM and each RI of the RIs, (iii) the usage constraint associated with each RI, and (iv) the association between the at least one VM and the instance type of each RI.

5. The method of claim 1 , wherein the set of computational resources specified by each RI are allocated to a different one of the VMs.

6. The method of claim 1 , wherein the set of computational resources specified by one of the RIs are allocated to two or more of the VMs.

7. The method of claim 1 , wherein the mapping is computationally generated using Gale-Shapley algorithm.

8. The method of claim 1 , wherein the set of computational resources are selected from the group consisting of CPUs, memory, databases, network bandwidth, and input-output capacity.

9. A computer system for allocating resources to a plurality of virtual machines (VMs), each of the VMs being associated with a feasible resource template specifying minimum resources required to execute the VM, the computer system comprising:

a processor; and

a computer memory including stored instructions, executable by the processor, for causing the processor to:

upload a workload to at least one VM of the plurality of VMs for execution of the workload;

identify a plurality of reserved instances (RIs), wherein each RI specifies a set of computational resources that is compatible with the feasible resource template associated with the at least one VM for execution of the workload for a fixed time period;

generate, for the at least one VM, an instance-ranking list indicating a ranking order of the RIs having templates that are compatible with the feasible resource template associated with the at least one VM;

generate, for each RI, a VM-ranking list indicating a ranking order of the VMs to which the set of computational resources specified by each RI may be allocated;

based at least in part on the instance-ranking list and the VM-ranking list, map the at least one VM to a corresponding RI of the RIs;

allocate the set of computational resources specified by the corresponding RI to the at least one VM based on the mapping; and

monitor a use of the set of computational resources by the at least one VM using the processor that tracks actual resource utilization over time to determine if the set of computational resources allocated to the at least one VM needs to be updated to execute the workload.

10. The computer system of claim 9 , wherein the ranking order of the RIs in the instance-ranking list and/or the ranking order of the VMs in the VM-ranking list is determined based on at least one priority factor selected from the group consisting of a cost saving, an affinity between the VMs and the RIs, an association between the VMs and an instance type of each RI, an association between the VMs and a family of the instance type to which each RI belongs, and a usage constraint associated with each RI.

11. The computer system of claim 10 , wherein, for each RI, the ranking order of the VM-ranking list is determined based on the following order of priority factors: (i) the cost saving associated with the VMs, (ii) the affinity between each RI and the VMs, (iii) the association between the instance type of each RI and the VMs, and (iv) the association between the family of the instance type to which each RI belongs to and the VMs.

12. The computer system of claim 10 , wherein, for the at least one VM, the ranking order of the RIs in the instance-ranking list is determined based on the following order of priority factors: (i) the cost saving associated with each RI, (ii) the affinity between the at least one VM and each RI, (iii) the usage constraint associated with each RI, and (iv) the association between the at least one and the instance type of each RI.

13. The computer system of claim 9 , wherein the set of computational resources specified by each RI are allocated to a different one of the VMs.

14. The computer system of claim 9 , wherein the set of computational resources specified by one of the Ms are allocated to two or more of the VMs.

15. The computer system of claim 9 , wherein the processor is further configured to computationally map the at least one VM to one of the RIs using Gale-Shapley algorithm.

16. The system of claim 9 , wherein the set of computational resources are selected from the group consisting of CPUs, memory, databases, network bandwidth, and input-output capacity.

Assignments (4)
CHANGE OF NAME Recorded Jul 23, 2024
From: ETHICON ENDO-SURGERY, LLC
To: ETHICON LLC
Reel/Frame 068055/0175 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2024
From: ETHICON LLC
To: CILAG GMBH INTERNATIONAL
Reel/Frame 068492/0272 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2022
From: TURBONOMIC, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 062202/0030 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2021
From: BATRA, PANKAJ; FRENN, EVAN; GANDT, ERIC; OHSIE, DAVID; SWEENEY, PETER; VEERAMONI, SANKAR
To: TURBONOMIC, INC.
Reel/Frame 055761/0892 →
Continuity (1)
Related Publication 20220300337A1 · Sep 22, 2022