IP Library Granted Patent US 11,762,670
Granted Patent B2
US 11,762,670 · App. 16/802,127 · Granted Sep 19, 2023

Testing and selection of efficient application configurations

Inventor: Sebastian Laskawiec (Lipniki, PL)
Assignee: Red Hat, Inc.
G06F9/4451G06N20/00
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,762,670
App. No.
16/802,127
Granted
Sep 19, 2023
Kind
B2
Abstract

Methods and systems for selecting, testing, and applying application configurations are presented. In one embodiment, a method is provided that includes executing an application according to a first configuration and measuring a first plurality of metrics. A change to a setting of the first configuration may be identified by a machine learning model to generate a second configuration. The application may be executed according to the second configuration and a second plurality of metrics may be measured. A selected configuration for future executions of the application may be selected from among the first and second configurations based on the first plurality of metrics and the second plurality of metrics.

Claims (50)

1. A method comprising:

(a) executing an application according to a first configuration, the first configuration including a plurality of configuration settings;

(b) measuring a first plurality of metrics regarding the execution of the application according to the first configuration;

(c) identifying, with a machine learning model, a change to at least one configuration setting to generate a second configuration,

wherein the machine learning model is trained to identify the change to the at least one configuration setting using training data including: a plurality of previously identified configurations, a plurality of previously identified operating metrics corresponding to the previously identified configurations, and a plurality of previously identified configuration settings of the previously identified configurations,

wherein the previously identified configurations comprise one or more implementation details and required system resources for previously identified applications, wherein the previously identified configuration settings comprise one or more parameters for the one or more implementation details and required system resources, and wherein the previously identified operating metrics indicate performance of the applications;

(d) executing the application according to the second configuration;

(e) measuring a second plurality of metrics regarding execution of the application according to the second configuration; and

(f) selecting, based on the first plurality of metrics and the second plurality of metrics, a selected configuration for future executions of the application from among the first and second configurations.

2. The method of claim 1 , further comprising iterating (c)-(e) to identify a plurality of configurations and to measure multiple pluralities of metrics associated with the plurality of configurations, and wherein (f) includes selecting the selected configuration from among the plurality of configurations based on the multiple pluralities of metrics.

3. The method of claim 1 , wherein the plurality of configuration settings are identified based on a predetermined configuration space.

4. The method of claim 3 , wherein the change to the at least one configuration setting is selected to comply with a predefined range of values associated with the at least one configuration setting within the predetermined configuration space.

5. The method of claim 1 , further comprising:

receiving the application for execution within a computing environment; and

monitoring a plurality of executed configurations for the application during execution with the computing environment,

wherein the plurality of previously-identified configurations includes at least a subset of the plurality of executed configurations.

6. The method of claim 1 , wherein the plurality of previously-identified configurations includes at least one configuration identified by the machine learning model for a previous execution of the application.

7. The method of claim 1 , wherein the application is executed in a first computing environment, and wherein the method further comprises, prior to (a), executing, within a second computing environment, the application a plurality of times according to a plurality of testing configurations, wherein the plurality of previously-identified configurations includes at least a subset of the plurality of testing configurations.

8. The method of claim 1 , wherein the first configuration further includes a system-level configuration specifying an amount of one or more system resources available for execution of the function, and wherein the change to the at least one configuration setting is identified at least in part based on the system-level configuration.

9. The method of claim 1 , wherein the machine learning model is implemented by a neural network model.

10. The method of claim 1 , wherein the execution metrics include at least one of a latency of the application, a throughput of the application, a processor utilization of the application, a memory utilization of the application, and a storage utilization of the application.

11. A system comprising:

a processor; and

a memory storing instructions which, when executed by the processor, cause the processor to:

(a) execute an application according to a first configuration, the first configuration including a plurality of configuration settings;

(b) measure a first plurality of metrics regarding the execution of the application according to the first configuration;

(c) identify, with a machine learning model, a change to at least one configuration setting to generate a second configuration,

wherein the machine learning model is trained to identify the change to the at least one configuration setting using training data including: a plurality of previously identified configurations, a plurality of previously identified operating metrics corresponding to the previously identified configurations, and a plurality of previously identified configuration settings of the previously identified configurations,

wherein the previously identified configurations comprise one or more implementation details and required system resources for previously identified applications, wherein the previously identified configuration settings comprise one or more parameters for the one or more implementation details and required system resources, and wherein the previously identified operating metrics indicate performance of the applications;

(d) execute the application according to the second configuration;

(e) measure a second plurality of metrics regarding execution of the application according to the second configuration; and

(f) select, based on the first plurality of metrics and the second plurality of metrics, a selected configuration for future executions of the application from among the first and second configurations.

12. The system of claim 11 , wherein the instructions, when executed by the processor, further cause the processor to iterate (c)-(e) to identify a plurality of configurations and to measure multiple pluralities of metrics associated with the plurality of configurations, and wherein (f) includes selecting the selected configuration from among the plurality of configurations based on the multiple pluralities of metrics.

13. The system of claim 12 , wherein the first configuration further includes a system-level configuration specifying an amount of one or more system resources available for execution of the function, and wherein the change to the at least one configuration setting is identified at least in part based on the system-level configuration.

14. The system of claim 11 , wherein the plurality of configuration settings are identified based on a predetermined configuration space.

15. The system of claim 14 , wherein the change to the at least one configuration setting is selected to comply with a predefined range of values associated with the at least one configuration setting within the predetermined configuration space.

16. The system of claim 11 , wherein the instructions, when executed, further cause the processor to:

receive the application for execution within a computing environment; and

monitor a plurality of executed configurations for the application during execution with the computing environment,

wherein the plurality of previously-identified configurations includes at least a subset of the plurality of executed configurations.

17. The system of claim 11 , wherein the application is executed in a first computing environment, and wherein the instructions, when executed by the processor, further cause the processor to, prior to (a), execute, within a second computing environment, the application a plurality of times according to a plurality of testing configurations, wherein the plurality of previously-identified configurations includes at least a subset of the plurality of testing configurations.

18. A non-transitory, computer-readable medium storing instructions which, when executed by a processor, cause the processor to:

(a) execute an application according to a first configuration, the first configuration including a plurality of configuration settings;

(b) measure a first plurality of metrics regarding the execution of the application according to the first configuration;

(c) identify, with a machine learning model, a change to at least one configuration setting to generate a second configuration,

wherein the machine learning model is trained to identify the change to the at least one configuration setting using training data including: a plurality of previously identified configurations, a plurality of previously identified operating metrics corresponding to the previously identified configurations, and a plurality of previously identified configuration settings of the previously identified configurations,

wherein the previously identified configurations comprise one or more implementation details and required system resources for previously identified applications, wherein the previously identified configuration settings comprise one or more parameters for the one or more implementation details and required system resources, and wherein the previously identified operating metrics indicate performance of the applications;

(d) execute the application according to the second configuration;

(e) measure a second plurality of metrics regarding execution of the application according to the second configuration; and

(f) select, based on the first plurality of metrics and the second plurality of metrics, a selected configuration for future executions of the application from among the first and second configurations.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE DOCKET NUMBER PREVIOUSLY RECORDED AT REEL: 68268 FRAME: 81. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 13, 2024
From: LASKAWIEC, SEBASTIAN
To: RED HAT, INC.
Reel/Frame 068950/0340 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2024
From: LASKAWIEC, SEBASTIAN
To: RED HAT, INC.
Reel/Frame 068268/0081 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 27, 2020
From: LASKAWIEC, SEBASTIAN
To: RED HAT, INC.
Reel/Frame 051948/0329 →
Continuity (1)
Related Publication 20210263749A1 · Aug 26, 2021