IP Library › Granted Patent US 10,748,083
Granted Patent B2
US 10,748,083 · App. 16/449,074 · Granted Aug 18, 2020

Automated tuning of a service configuration

Inventor: Carlos Alejandro Arguelles (Shoreline, WA)
Assignee: Amazon Technologies, Inc.
G06N20/00G06F11/34G06F11/3409G06F11/3414G06F11/3672G06F11/3684G06F15/177H04L41/0823H04L41/0886G06F11/3452
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 10,748,083
App. No.
16/449,074
Granted
Aug 18, 2020
Kind
B2
Abstract

Methods and systems for automated tuning of a service configuration are disclosed. An optimal configuration for a test computer is selected by performing one or more load tests using the test computer for each of a plurality of test configurations. The performance of a plurality of additional test computers configured with the optimal configuration is automatically determined by performing additional load tests using the additional test computers. A plurality of production computers are automatically configured with the optimal configuration if the performance of the additional test computers is improved with the optimal configuration.

Claims (60)

1. A computer-implemented method, comprising:

automatically selecting an optimal configuration for a test computer, comprising, for individual ones of a plurality of test configurations for the test computer, performing one or more load tests using the test computer, wherein the optimal configuration is automatically selected from among the plurality of test configurations;

automatically determining a performance of a plurality of additional test computers configured with the optimal configuration, comprising performing a plurality of additional load tests using the plurality of additional test computers; and

automatically configuring a plurality of production computers with the optimal configuration responsive to an indication that the performance of the plurality of additional test computers is improved with the optimal configuration.

2. The method as recited in claim 1 , further comprising:

automatically determining a performance of the plurality of production computers configured with the optimal configuration; and

automatically restoring an earlier configuration of the plurality of production computers responsive to an indication that the performance with the optimal configuration is not superior to an earlier performance with the earlier configuration.

3. The method as recited in claim 1 , further comprising:

receiving a user-defined performance goal;

wherein the optimal configuration is automatically selected to meet the user-defined performance goal.

4. The method as recited in claim 1 , further comprising:

receiving a user-defined testing frequency;

wherein automatically selecting the optimal configuration is scheduled according to the user-defined testing frequency.

5. The method as recited in claim 1 , further comprising:

automatically provisioning the plurality of test computers from among the plurality of production computers.

6. The method as recited in claim 1 , further comprising:

automatically provisioning the plurality of test computers from among a pool of available test computers, wherein the plurality of test computers are selected based on a similarity to the plurality of production computers.

7. The method as recited in claim 1 , further comprising:

automatically determining one or more configurable parameters in the test computer;

automatically determining a range of values for the one or more configurable parameters; and

for individual ones of the plurality of test configurations, automatically assigning respective values for the configurable parameters within the range of values.

8. The method as recited in claim 1 , further comprising:

automatically generating a plurality of test loads using a hill-climbing loop, wherein successive iterations of the hill-climbing loop increases a frequency of transactions;

wherein the plurality of load tests are performed using the test loads.

9. A system, comprising:

at least one processor;

a memory coupled to the at least one processor, wherein the memory stores program instructions, wherein the program instructions are executable by the at least one processor to:

automatically select an optimal configuration for a test computer, comprising, for individual ones of a plurality of test configurations for the test computer, perform one or more load tests using the test computer, wherein the optimal configuration is automatically selected from among the plurality of test configurations;

automatically determine a performance of a plurality of additional test computers configured with the optimal configuration, comprising perform a plurality of additional load tests using the plurality of additional test computers; and

automatically configure a plurality of production computers with the optimal configuration responsive to an indication that the performance of the plurality of additional test computers is improved with the optimal configuration.

10. The system as recited in claim 9 , wherein the program instructions are further executable by the at least one processor to:

automatically determine a performance of the plurality of production computers configured with the optimal configuration; and

automatically restore an earlier configuration of the plurality of production computers responsive to an indication that the performance with the optimal configuration is not superior to an earlier performance with the earlier configuration.

11. The system as recited in claim 9 , wherein the program instructions are further executable by the at least one processor to:

receive a user-defined performance goal;

wherein the optimal configuration is automatically selected to meet the user-defined performance goal.

12. The system as recited in claim 9 , wherein the program instructions are further executable by the at least one processor to:

receive a user-defined testing frequency;

wherein automatic selection of the optimal configuration is scheduled according to the user-defined testing frequency.

13. The system as recited in claim 9 , wherein the program instructions are further executable by the at least one processor to:

automatically provision the plurality of test computers from among the plurality of production computers.

14. The system as recited in claim 9 , wherein the program instructions are further executable by the at least one processor to:

automatically provision the plurality of test computers from among a pool of available test computers, wherein the plurality of test computers are selected based on a similarity to the plurality of production computers.

15. One or more non-transitory, computer-readable storage media storing instructions that, when executed on or across one or more processors, cause the one or more processors to:

automatically select an optimal configuration for a test computer, selection comprising, for individual ones of a plurality of test configurations for the test computer, performance of one or more load tests using the test computer, wherein the optimal configuration is automatically selected from among the plurality of test configurations;

automatically determine a performance of a plurality of additional test computers configured with the optimal configuration, determination comprising performance of a plurality of additional load tests using the plurality of additional test computers; and

automatically configure a plurality of production computers with the optimal configuration responsive to an indication that the performance of the plurality of additional test computers is improved with the optimal configuration.

16. The one or more non-transitory, computer-readable storage media as recited in claim 15 , further comprising instructions that, when executed on or across the one or more processors, cause the one or more processors to:

automatically determine a performance of the plurality of production computers configured with the optimal configuration; and

automatically restore an earlier configuration of the plurality of production computers responsive to an indication that the performance with the optimal configuration is not superior to an earlier performance with the earlier configuration.

17. The one or more non-transitory, computer-readable storage media as recited in claim 15 , further comprising instructions that, when executed on or across the one or more processors, cause the one or more processors to:

receive a user-defined performance goal;

wherein the optimal configuration is automatically selected to meet the user-defined performance goal.

18. The one or more non-transitory, computer-readable storage media as recited in claim 15 , further comprising instructions that, when executed on or across the one or more processors, cause the one or more processors to:

receive a user-defined testing frequency;

wherein automatic selection of the optimal configuration is scheduled according to the user-defined testing frequency.

19. The one or more non-transitory, computer-readable storage media as recited in claim 15 , further comprising instructions that, when executed on or across the one or more processors, cause the one or more processors to:

automatically provision the plurality of test computers from among the plurality of production computers.

20. The one or more non-transitory, computer-readable storage media as recited in claim 15 , further comprising instructions that, when executed on or across the one or more processors, cause the one or more processors to:

automatically provision the plurality of test computers from among a pool of available test computers, wherein the plurality of test computers are selected based on a similarity to the plurality of production computers.

Continuity (3)
Division 14733905 · Jun 8, 2015
Division 13710013 · Dec 10, 2012
Related Publication 20190311292A1 · Oct 10, 2019