IP Library › Granted Patent US 12,118,396
Granted Patent B2
US 12,118,396 · App. 17/317,571 · Granted Oct 15, 2024

Computing resource autoscaling based on predicted metric behavior

Inventors: Adi Eldar (Kiryat-Ono, IL); Shahar Davidovich (Ramat Gan, IL)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F9/5027G06F16/2465G06F16/254
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 12,118,396
App. No.
17/317,571
Granted
Oct 15, 2024
Kind
B2
Abstract

Methods, systems, apparatuses, and computer-readable storage mediums described herein are configured to automatically allocate or deallocate computing resources based on a prediction of performance metrics behavior. For instance, the historical behavior of compute metrics (or a time series obtained therefor) is analyzed to detect a seasonality (i.e., a seasonal pattern) and a trend therefor. A prediction of the metrics' behavior for a future time frame is determined based on the seasonality and the trend. Based on the prediction, computing resources are allocated or deallocated at or prior to the future time frame occurring. For example, if a prediction is made that a particular metric will increase, additional compute resources are allocated to handle the increase ahead of the predicted metric increase. If a prediction is made that a particular metric will decrease, compute resources are deallocated at the time the metric is predicted to decrease.

Claims (97)

1. A system comprising:

at least one processor circuit; and

at least one memory that stores program code that, when executed by the at least one processor circuit, causes the system to perform operations comprising:

obtaining a first time series of data values, for a first time frame, corresponding to a first metric associated with a first type of process performed by a central processing unit (CPU);

obtaining a second time series of data values, for the first time frame, corresponding to a second metric associated with a second type of process performed by the CPU;

detecting a first seasonal time period and a first trend of the first time series of data values that occurs in the first seasonal time period; detecting a second seasonal time period and a second trend of the second time series of data values that occurs in the second seasonal time period;

generating a first prediction for the first metric for a second time frame, subsequent to the first time frame, based on the first seasonal time period and the first trend;

generating a second prediction for the second metric for the second time frame based on the second seasonal time period and the second trend;

determining that at least one other type of process is performed by the CPU;

performing, using a linear regression model, a linear regression using a combination of the first prediction and the second prediction to compensate for the at least one other type of process performed by the first CPU, wherein the linear regression calculates a third prediction related to usage of the first CPU for the second time frame; and

automatically initiating allocation or deallocation of a CPU core based on the third prediction.

2. The system of claim 1 , wherein:

the first type of process is configured to process queries for a database implemented via a cloud computing network;

the second type of process is configured to ingest data into the database; and

the at least one other type of process performed by the first CPU is configured to collect garbage, manage heaps, or manage indexes.

3. The system of claim 1 , wherein the operations further comprise:

applying a transform to the first time series to detect a first seasonal pattern;

applying the transform to the second time series to detect a second seasonal pattern;

for each first bin of a plurality of first bins of the first seasonal pattern, determining a first median data value of the first seasonal pattern located in the first bin, the plurality of first bins having a same phase of a predetermined period of the first seasonal pattern;

for each second bin of a plurality of second bins of the other seasonal pattern, determining a second median data value of the second seasonal pattern located in the second bin, the plurality of second bins having the same phase of the predetermined period of the second seasonal pattern;

generating the first seasonal time period based on the first median data value; and

generating the second seasonal time period based on the second median data value.

4. The system of claim 3 , wherein the operations further comprise:

removing the first seasonal time period from the first time series of data values to generate a first de-seasonalized time series;

removing the second seasonal time period from the second time series to generate a second de-seasonalized time series;

detecting the first trend based on the first de-seasonalized time series; and

detecting the second trend based on the second de-seasonalized time series.

5. The system of claim 1 , wherein:

the first prediction indicates a first time during the second time frame at which both the first metric and the second metric are predicted to be below a first predetermined time threshold; and

the operations further comprise:

determining a duration of time in which both the first metric and the second metric are predicted to be below the first predetermined threshold during the second time frame;

determining that the duration of time exceeds a second predetermined time threshold; and

responsive to determining that the duration of time exceeds the second predetermined time threshold, automatically initiating the deallocation of the CPU core at the time in the second time frame.

6. The system of claim 1 , wherein:

the first prediction indicates a first time during the second time frame at which at least one of the first metric or the second metric is predicted to exceed a predetermined time threshold; and

the operations further comprise automatically initiating the allocation of the CPU core at a second time that is before the first time based on the first prediction indicating the first time during the second time frame at which the at least one of the first metric or the second metric is predicted to exceed the predetermined time threshold.

7. A method configured to automatically allocate or deallocate computing resources, comprising:

obtaining a first time series of data values, for a first time frame, corresponding to a first metric associated with a first type of process performed by a central processing unit (CPU);

obtaining a second time series of data values, for the first time frame, corresponding to a second metric associated with a second type of process performed by the CPU;

detecting a first seasonal time period and a first trend of the first time series of data values that occurs in the first seasonal time period;

detecting a second seasonal time period and a second trend of the second time series of data values that occurs in the second seasonal time period;

generating a first prediction for the first metric for a second time frame, subsequent to the first time frame, based on the first seasonal time period and the first trend;

generating a second prediction for the second metric for the second time frame based on the second seasonal time period and the second trend;

determining that at least one other type of process is performed by the CPU;

performing, using a linear regression model, a linear regression using a combination of the first prediction and the second prediction to compensate for the at least one other type of process performed by the first CPU, wherein the linear regression calculates a third prediction related to usage of the first CPU for the second time frame; and

automatically initiating an allocation or a deallocation of a CPU core based on the third prediction.

8. The method of claim 7 , wherein:

the first type of process is configured to process queries for a database implemented via a cloud computing network;

the second type of process is configured to ingest data into the database; and

the at least one other type of process performed by the first CPU is configured to collect garbage, manage heaps, or manage indexes.

9. The method of claim 7 , further comprising:

applying a transform to the first time series to detect a first seasonal pattern;

applying the transform to the second time series to detect a second seasonal pattern;

for each first bin of a plurality of first bins of the first seasonal pattern, determining a first median data value of the first seasonal pattern located in the first bin, the plurality of first bins having a same phase of a predetermined period of the first seasonal pattern;

for each second bin of a plurality of second bins of the other seasonal pattern, determining a second median data value of the second seasonal pattern located in the second bin, the plurality of second bins having the same phase of the predetermined period of the second seasonal pattern;

generating the first seasonal time period based on the first median data value; and

generating the second seasonal time period based on the second median data value.

10. The method of claim 9 , further comprising:

removing the first seasonal time period from the first time series of data values to generate a first de-seasonalized time series;

removing the second seasonal time period from the second time series to generate a second de-seasonalized time series;

detecting the first trend based on the first de-seasonalized time series; and

detecting the second trend based on the second de-seasonalized time series.

11. The method of claim 7 , wherein:

the first prediction indicates a first time during the second time frame at which both the first metric and the second metric are predicted to be below a first predetermined time threshold; and

the operations further comprise:

determining a duration of time in which both the first metric and the second metric are predicted to be below the first predetermined threshold during the second time frame;

determining that the duration of time exceeds a second predetermined time threshold; and

responsive to determining that the duration of time exceeds the second predetermined time threshold, automatically initiating the deallocation of the CPU core at the time in the second time frame.

12. The method of claim 7 , wherein:

the first prediction indicates a first time during the second time frame at which at least one of the first metric or the second metric is predicted to exceed a predetermined time threshold; and

the operations further comprise automatically initiating the allocation of the CPU core at a second time that is before the first time based on the first prediction indicating the first time during the second time frame at which the at least one of the first metric or the second metric is predicted to exceed the predetermined time threshold.

13. A computer-readable storage medium having program instructions recorded thereon that, when executed by a processor circuit, causes a system to perform operations comprising:

obtaining a first time series of data values, for a first time frame, corresponding to a first metric associated with a first type of process performed by a central processing unit (CPU);

obtaining a second time series of data values, for the first time frame, corresponding to a second metric associated with a second type of process performed by the CPU;

detecting a first seasonal time period and a first trend of the first time series of data values that occurs in the first seasonal time period;

detecting a second seasonal time period and a second trend of the second time series of data values that occurs in the second seasonal time period;

generating a first prediction for the first metric for a second time frame, subsequent to the first time frame, based on the first seasonal time period and the first trend;

generating a second prediction for the second metric for the second time frame based on the second seasonal time period and the second trend;

determining that at least one other type of process is performed by the CPU;

performing, using a linear regression model, a linear regression using a combination of the first prediction and the second prediction to compensate for the at least one other type of process performed by the first CPU, wherein the linear regression calculates a third prediction related to usage of the first CPU for the second time frame; and

automatically initiating an allocation or a deallocation of a CPU core based on the third prediction.

14. The computer-readable storage medium of claim 13 , wherein:

the first type of process is configured to process queries for a database implemented via a cloud computing network;

the second type of process is configured to ingest data into the database; and

the at least one other type of process performed by the first CPU is configured to collect garbage, manage heaps, or manage indexes.

15. The computer-readable storage medium of claim 13 , wherein the operations further comprise:

applying a transform to the first time series to detect a first seasonal pattern;

applying the transform to the second time series to detect a second seasonal pattern;

for each first bin of a plurality of first bins of the first seasonal pattern, determining a first median data value of the first seasonal pattern located in the first bin, the plurality of first bins having a same phase of a predetermined period of the first seasonal pattern;

for each second bin of a plurality of second bins of the other seasonal pattern, determining a second median data value of the second seasonal pattern located in the second bin, the plurality of second bins having the same phase of the predetermined period of the second seasonal pattern;

generating the first seasonal time period based on the first median data value; and

generating the second seasonal time period based on the second median data value.

16. The computer-readable storage medium of claim 15 , wherein the operations further comprise:

removing the first seasonal time period from the first time series of data values to generate a first de-seasonalized time series;

removing the second seasonal time period from the second time series to generate a second de-seasonalized time series;

detecting the first trend based on the first de-seasonalized time series; and

detecting the second trend based on the second de-seasonalized time series.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2021
From: ELDAR, ADI; DAVIDOVICH, SHAHAR
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 056233/0561 →
Continuity (1)
Related Publication 20220374273A1 · Nov 24, 2022