IP Library › Granted Patent US 11,321,141
Granted Patent B2
US 11,321,141 · App. 16/576,983 · Granted May 3, 2022

Resource management for software containers using container profiles

Inventors: Mohammad Rafey (Bangalore, IN); Siddharth Agrawal (Sambalpur, IN)
Assignee: Dell Products L.P.
G06F9/5077G06F9/45558G06F9/505G06N20/00G06F2009/45595
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,321,141
App. No.
16/576,983
Filed
Sep 20, 2019
Granted
May 3, 2022
Kind
B2
Art Unit
2199
USPC
718/1
Abstract

A method comprises receiving a request to execute an instance of a given software container, determining source code entities of source code of the given software container, and generating a given software container profile for the given software container based at least in part on rankings associated with the source code entities. The method also comprises creating a resource management plan for the given software container utilizing one or more machine learning algorithms, the resource management plan comprising resource management metric thresholds determined based at least in part on historical resource utilization data for additional software containers having associated software container profiles similar to the given software container profile. The method further comprises executing the instance of the given software container on a software container platform, and managing resource utilization of the executing instance of the given software container based at least in part on the resource management plan.

Claims (61)

1. A method comprising steps of:

receiving a request to execute an instance of a given software container;

determining a set of source code entities of source code of the given software container;

generating a given software container profile for the given software container based at least in part on rankings associated with the set of source code entities of the source code of the given software container;

identifying, utilizing one or more machine learning algorithms, one or more additional software containers having associated software container profiles exhibiting at least a threshold level of similarity to the given software container profile;

determining, based at least in part on historical resource utilization data for the identified one or more additional software containers, a set of resource management metric thresholds;

creating a resource management plan for the given software container, the resource management plan comprising the determined set of resource management metric thresholds;

executing the instance of the given software container on a software container platform; and

managing resource utilization of the executing instance of the given software container based at least in part on the resource management plan for the given software container;

wherein the method is performed by at least one processing device comprising a processor coupled to a memory.

2. The method of claim 1 wherein the request to execute the instance of the given software container comprises a container image for the given software container.

3. The method of claim 1 wherein the request to execute the instance of the given software container comprises source code for one or more applications to be packaged into a container image for the given software container.

4. The method of claim 1 wherein the set of source code entities comprise at least one of software classes, software methods and software functions.

5. The method of claim 1 , wherein a given one of the rankings associated with a given one of the source code entities characterizes functional importance to an enterprise system.

6. The method of claim 5 wherein functional importance to the enterprise system is determined based at least in part on at least one of usage of the given source code entity and connectedness of the given source code entity.

7. The method of claim 6 wherein the usage of the given source code entity is determined based at least in part by analyzing basis path hits at runtime of the given source code entity by instances of software containers comprising the given source code entity.

8. The method of claim 6 wherein the connectedness of the given source code entity is determined based at least in part by identifying a number of edges connecting a node representing the given source code entity to one or more other nodes in a source code entities graph, the source code entities graph comprising nodes representing a plurality of source code entities and edges connecting the nodes representing linkages between the plurality of source code entities in a plurality of software containers.

9. The method of claim 1 wherein the software container profiles associated with the identified one or more additional software containers have respective software container profile weight values within a designated threshold of a given software container profile weight of the given software container profile.

10. The method of claim 9 wherein the designated threshold comprises k and identifying the one or more additional software containers having associated software container profiles exhibiting at least the threshold level of similarity to the given software container profile comprises utilizing a k nearest neighbor machine learning algorithm to identify k software container profiles from a repository of software container profiles, the k software container profiles comprising those software container profiles in the software container profile repository which comprise software container profile weights closest to the given software container profile weight.

11. The method of claim 10 wherein the determined set of resource management metric thresholds comprise at least one of:

a central processing unit (CPU) resource utilization limit calculated based on historical CPU resource utilization by instances of software containers associated with the k software container profiles;

a memory resource utilization limit calculated based on historical memory resource utilization by the instances of the software containers associated with the k software container profiles; and

a storage space utilization limit calculated based on historical storage space utilization by the instances of the software containers associated with the k software container profiles.

12. The method of claim 9 wherein a distance between a first software container profile weight for a first software container and a second software container profile weight for a second software container indicates relative functional importance between at least a first application of the first software container and at least a second application of the second software container.

13. The method of claim 1 wherein managing resource utilization of the executing instance of the given software container based at least in part on the resource management plan for the given container comprises:

monitoring resource utilization by the executing instance of the given software container; and

dynamically altering resource utilization by the executing instance of the given software container responsive to the monitored resource utilization being outside one or more of the determined set of resource management metric thresholds.

14. The method of claim 13 wherein dynamically altering resource utilization by the executing instance of the given software container comprises at least one of:

allocating additional resources of the container platform to the executing instance of the given software container;

de-allocating resources of the container platform from the executing instance of the given software container; and

throttling resource usage by the executing instance of the given software container.

15. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device to perform steps of:

receiving a request to execute an instance of a given software container;

determining a set of source code entities of source code of the given software container;

generating a given software container profile for the given software container based at least in part on rankings associated with the set of source code entities of the source code of the given software container;

identifying, utilizing one or more machine learning algorithms, one or more additional software containers having associated software container profiles exhibiting at least a threshold level of similarity to the given software container profile;

determining, based at least in part on historical resource utilization data for the identified one or more additional software containers, a set of resource management metric thresholds;

creating a resource management plan for the given software container, the resource management plan comprising the determined set of resource management metric thresholds;

executing the instance of the given software container on a software container platform; and

managing resource utilization of the executing instance of the given software container based at least in part on the resource management plan for the given software container.

16. The computer program product of claim 15 wherein a given one of the rankings associated with a given one of the source code entities characterizes functional importance to an enterprise system, and wherein functional importance to the enterprise system is determined based at least in part on at least one of usage of the given source code entity and connectedness of the given source code entity.

17. The computer program product of claim 15 wherein:

the software container profiles associated with the identified one or more additional software containers have respective software container profile weight values within a designated threshold of a given software container profile weight of the given software container profile;

the designated threshold comprises k; and

identifying the one or more additional software containers having associated software container profiles exhibiting at least the threshold level of similarity to the given software container profile comprises utilizing a k nearest neighbor machine learning algorithm to identify k software container profiles from a repository of software container profiles, the k software container profiles comprising those software container profiles in the software container profile repository which comprise software container profile weights closest to the given software container profile weight.

18. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the at least one processing device being configured to perform steps of:

receiving a request to execute an instance of a given software container;

determining a set of source code entities of source code of the given software container;

generating a given software container profile for the given software container based at least in part on rankings associated with the set of source code entities of the source code of the given software container;

identifying, utilizing one or more machine learning algorithms, one or more additional software containers having associated software container profiles exhibiting at least a threshold level of similarity to the given software container profile;

determining, based at least in part on historical resource utilization data for the identified one or more additional software containers, a set of resource management metric thresholds;

creating a resource management plan for the given software container, the resource management plan comprising the determined set of resource management metric thresholds;

executing the instance of the given software container on a software container platform; and

managing resource utilization of the executing instance of the given software container based at least in part on the resource management plan for the given software container.

19. The apparatus of claim 18 wherein a given one of the rankings associated with a given one of the source code entities characterizes functional importance to an enterprise system, and wherein functional importance to the enterprise system is determined based at least in part on at least one of usage of the given source code entity and connectedness of the given source code entity.

20. The apparatus of claim 18 wherein:

the software container profiles associated with the identified one or more additional software containers have respective software container profile weight values within a designated threshold of a given software container profile weight of the given software container profile;

the designated threshold comprises k; and

identifying the one or more additional software containers having associated software container profiles exhibiting at least the threshold level of similarity to the given software container profile comprises utilizing a k nearest neighbor machine learning algorithm to identify k software container profiles from a repository of software container profiles, the k software container profiles comprising those software container profiles in the software container profile repository which comprise software container profile weights closest to the given software container profile weight.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (051302/0528) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.); SECUREWORKS CORP.
Reel/Frame 060438/0593 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST AT REEL 051449 FRAME 0728 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
Reel/Frame 058002/0010 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Dec 31, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 051449/0728 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Dec 16, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 051302/0528 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2019
From: RAFEY, MOHAMMAD; AGRAWAL, SIDDHARTH
To: DELL PRODUCTS L.P.
Reel/Frame 050441/0458 →
Continuity (1)
Related Publication 20210089361A1 · Mar 25, 2021