IP Library › Granted Patent US 12,489,716
Granted Patent B1
US 12,489,716 · App. 18/677,258 · Granted Dec 2, 2025

Resource utilization forecasting for predictive autoscaling

Inventors: Xiaotang Shao (Cupertino, CA); Hui Luo (Fremont, CA); Estela Ramirez Ramirez (San Jose, CA); Zihan Jiang (Foster City, CA); Sen Lin (Santa Clara, CA); Shreyas Badiger Mahadev (Santa Clara, CA); Navin Kumar Jammula (Dublin, CA); Yuxuan Zhu (Sunnyvale, CA); Chun-Che Peng (San Diego, CA)
Assignee: Intuit Inc.
H04L47/826H04L47/822H04L47/83
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,489,716
App. No.
18/677,258
Granted
Dec 2, 2025
Kind
B1
Abstract

Certain aspects of the disclosure provide techniques for predictive autoscaling. A method includes determining resource utilization metrics for a plurality of instances of a service running in a container-based cluster for a plurality of timestamps over a period of time; applying a smoothing filter to the resource utilization metrics to obtain smoothed resource utilization metrics; adjusting each of the smoothed resource utilization metrics by a nominal value; calculating a plurality of ratio metrics for the smoothed resource utilization metrics; processing, with a machine learning (ML) model trained to perform resource utilization forecasting, the plurality of ratio metrics and to predict a future ratio metric for the service after a prediction time window; determining a future resource utilization for the service after the prediction time window based on the future ratio metric; and automatically adjusting configuration parameter(s) to modify a state of the container-based cluster based on the future resource utilization.

Claims (110)

1 . A method of predictive autoscaling, comprising:

determining resource utilization metrics for a plurality of instances of a service running in a container-based cluster for a plurality of timestamps over a period of time;

applying a smoothing filter to the resource utilization metrics to obtain smoothed resource utilization metrics;

adjusting each of the smoothed resource utilization metrics by a nominal value;

calculating a plurality of ratio metrics for the smoothed resource utilization metrics, wherein:

each ratio metric is calculated as a difference between a first smoothed resource utilization metric and a second smoothed resource utilization metric divided by the first smoothed resource utilization metric,

the first smoothed resource utilization metric is associated with a first timestamp,

the second smoothed resource utilization metric is associated with a second timestamp occurring later in time than the first timestamp, and

an absolute value difference between the first timestamp and the second timestamp is equal to a prediction time window;

processing, with a machine learning (ML) model trained to perform resource utilization forecasting, the plurality of ratio metrics and to predict a future ratio metric for the service after the prediction time window;

determining a future resource utilization for the service after the prediction time window based on the future ratio metric; and

automatically adjusting one or more configuration parameters for the container-based cluster to modify a state of the container-based cluster based on the future resource utilization determined for the service.

2 . The method of claim 1 , wherein automatically adjusting the one or more configuration parameters for the container-based cluster comprises adjusting at least one of:

a number of pods to be deployed in the container-based cluster; or

a number of nodes to be deployed in the container-based cluster.

3 . The method of claim 1 , wherein automatically adjusting the one or more configuration parameters for the container-based cluster to modify the state of the container-based cluster based on the future resource utilization determined for the service comprises automatically adjusting the one or more configuration parameters based on the future resource utilization being above or below a threshold.

4 . The method of claim 1 , wherein determining the resource utilization metrics for the plurality of instances comprises:

querying individual resource utilization metrics for each instance of the plurality of instances of the service for the plurality of timestamps over the period of time;

for one or more of the plurality of instances:

discarding one or more of the individual resource utilization metrics associated with the instance based on a state of the instance satisfying one or more conditions; and

for each timestamp of the plurality of timestamps:

summing the individual resource utilization metrics for each instance associated with the timestamp to determine the resource utilization metric for the service at the timestamp.

5 . The method of claim 4 , wherein the one or more conditions comprise:

the instance being in an unready state for serving traffic; or

the instance being in an error state.

6 . The method of claim 1 , wherein the smoothing filter comprises:

a Savitzky-Golay filter;

a Wiener filter; or

a Kalman filter.

7 . The method of claim 1 , wherein the resource utilization metrics comprise at least one of:

memory usage;

central processing unit (CPU) usage;

transactions per second (TPS);

heap usage; or

a busy thread percentage.

8 . The method of claim 1 , wherein:

the container-based cluster comprises:

a plurality of nodes; and

a plurality of pods running on the plurality of nodes, and

each pod comprises one or more containers running one or more of the plurality of instances.

9 . A method of training a machine learning (ML) model to perform resource utilization forecasting, comprising:

determining resource utilization metrics for a plurality of instances of a service running in a container-based cluster for a plurality of timestamps over a period of time;

applying a smoothing filter to the resource utilization metrics to obtain smoothed resource utilization metrics;

adjusting each of the smoothed resource utilization metrics by a nominal value;

calculating a plurality of ratio metrics for the smoothed resource utilization metrics, wherein:

each ratio metric is calculated as a difference between a first smoothed resource utilization metric and a second smoothed resource utilization metric divided by the first smoothed resource utilization metric,

the first smoothed resource utilization metric is associated with a first timestamp,

the second smoothed resource utilization metric is associated with a second timestamp occurring later in time than the first timestamp, and

an absolute value difference between the first timestamp and the second timestamp is equal to a prediction time window;

training the ML model by, for each subset of the plurality of ratio metrics for a plurality of subsets of the plurality of ratio metrics:

providing the subset of the plurality of ratio metrics to an input layer of the ML model;

receiving, from the ML model, a ratio metric output based on the providing the subset of the plurality of ratio metrics;

comparing the ratio metric output to a ratio metric in the plurality of ratio metrics determined after a last ratio metric in the subset of the plurality of ratio metrics; and

modifying one or more parameters of the ML model based on the comparison.

10 . The method of claim 9 , wherein determining the resource utilization metrics for the plurality of instances comprises:

querying individual resource utilization metrics for each instance of the plurality of instances of the service for the plurality of timestamps over the period of time;

for one or more of the plurality of instances:

discarding one or more of the individual resource utilization metrics associated with the instance based on a state of the instance satisfying one or more conditions; and

for each timestamp of the plurality of timestamps:

summing the individual resource utilization metrics for each instance associated with the timestamp.

11 . The method of claim 10 , wherein the one or more conditions comprise:

the instance being in an unready state for serving traffic; or

the instance being in an error state.

12 . The method of claim 9 , wherein the smoothing filter comprises:

a Savitzky-Golay filter;

a Wiener filter; or

a Kalman filter.

13 . The method of claim 9 , wherein the resource utilization metrics comprise at least one of:

memory usage;

central processing unit (CPU) usage;

transactions per second (TPS);

heap usage; or

a busy thread percentage.

14 . A processing system, comprising:

one or more memories comprising computer-executable instructions; and

one or more processors configured to execute the computer-executable instructions and cause the processing system to:

determine resource utilization metrics for a plurality of instances of a service running in a container-based cluster for a plurality of timestamps over a period of time;

apply a smoothing filter to the resource utilization metrics to obtain smoothed resource utilization metrics;

adjust each of the smoothed resource utilization metrics by a nominal value;

calculate a plurality of ratio metrics for the smoothed resource utilization metrics, wherein:

each ratio metric is calculated as a difference between a first smoothed resource utilization metric and a second smoothed resource utilization metric divided by the first smoothed resource utilization metric,

the first smoothed resource utilization metric is associated with a first timestamp,

the second smoothed resource utilization metric is associated with a second timestamp occurring later in time than the first timestamp, and

an absolute value difference between the first timestamp and the second timestamp is equal to a prediction time window;

process, with a machine learning (ML) model trained to perform resource utilization forecasting, the plurality of ratio metrics and to predict a future ratio metric for the service after the prediction time window;

determine a future resource utilization for the service after the prediction time window based on the future ratio metric; and

automatically adjust one or more configuration parameters for the container-based cluster to modify a state of the container-based cluster based on the future resource utilization determined for the service.

15 . The processing system of claim 14 , wherein to automatically adjust the one or more configuration parameters for the container-based cluster, the one or more processors are configured to execute the computer-executable instructions and cause the processing system to adjust at least one of:

a number of pods to be deployed in the container-based cluster; or

a number of nodes to be deployed in the container-based cluster.

16 . The processing system of claim 14 , wherein to automatically adjust the one or more configuration parameters for the container-based cluster, the one or more processors are configured to execute the computer-executable instructions and cause the processing system to automatically adjusting the one or more configuration parameters based on the future resource utilization being above or below a threshold.

17 . The processing system of claim 14 , wherein to determine the resource utilization metrics for the plurality of instances, the one or more processors are configured to execute the computer-executable instructions and cause the processing system to:

query individual resource utilization metrics for each instance of the plurality of instances of the service for the plurality of timestamps over the period of time;

for one or more of the plurality of instances:

discard one or more of the individual resource utilization metrics associated with the instance based on a state of the instance satisfying one or more conditions; and

for each timestamp of the plurality of timestamps:

sum the individual resource utilization metrics for each instance associated with the timestamp to determine the resource utilization metric for the service at the timestamp.

18 . The processing system of claim 17 , wherein the one or more conditions comprise:

the instance being in an unready state for serving traffic; or

the instance being in an error state.

19 . The processing system of claim 14 , wherein the smoothing filter comprises:

a Savitzky-Golay filter;

a Wiener filter; or

a Kalman filter.

20 . The processing system of claim 14 , wherein the resource utilization metrics comprise at least one of:

memory usage;

central processing unit (CPU) usage;

transactions per second (TPS);

heap usage; or

a busy thread percentage.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2024
From: SHAO, XIAOTANG; LUO, HUI; RAMIREZ RAMIREZ, ESTELA; JIANG, ZIHAN; LIN, SEN; BADIGER MAHADEV, SHREYAS; JAMMULA, NAVIN KUMAR; ZHU, YUXUAN; PENG, CHUN-CHE
To: INTUIT INC.
Reel/Frame 068100/0112 →
References Cited (7)
US 10484301B1 · Shukla · 2019 [cited by examiner]
US 20240012667A1 · Mohanty · 2024 [cited by examiner]
US 20250103410A1 · Mohanty · 2025 [cited by examiner]
US 20250110775A1 · Janakiraman · 2025 [cited by examiner]
Turin et al. “Predicting resource consumption of Kubernetes container systems using resource models” The Journal of Systems & Software 203 (2023) 111750, 19 pp. [cited by applicant]
Wang, Thomas. “Predictive vertical CPU autoscaling in Kubernetes based on time-series forecasting with Holt-Winters exponential smoothing and long short-term memory”, Degree Programme in Computer Science and Engineering… [cited by applicant]
Wang et al. “Predicting CPU usage for proactive autoscaling” EuroMLSys '21: Proceedings of the 1st Workshop on Machine Learning and Systems, Apr. 2021. pp. 31-38. [cited by applicant]