IP Library Granted Patent US 12,591,466
Granted Patent B2
US 12,591,466 · App. 18/972,692 · Granted Mar 31, 2026

Underprovisioning in containerized environments

Inventor: Leonid Kuperman (North York, CA)
Assignee: CAST AI Group, Inc.
G06F9/5088
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,591,466
App. No.
18/972,692
Granted
Mar 31, 2026
Kind
B2
Abstract

A system or a method for optimizing resource allocation in a cloud computing environment. The system determines an amount of resource to be allocated for a container workload at an under-provisioned level and schedules the workload onto a node among a plurality of nodes that has the determined amount of resource. Performance metrics of the nodes are continuously monitored to determine whether each of the plurality of nodes is busy. Responsive to determining that the node is busy, the system cordons the node by updating the node's metadata to prevent scheduling new workloads while allowing existing workloads to continue running. In some embodiments, container workloads may be evicted from the cordoned node and migrated to another node with sufficient resources.

Claims (64)

1 . A method for optimizing resource allocation in a cloud computing environment, the method comprising:

determining an amount of resource to be allocated for a container workload at an under-provisioned level;

scheduling the container workload onto a node among a plurality of nodes that has the determined amount of resources;

monitoring one or more performance metrics of the plurality of nodes,

determining whether the node is busy based on the monitored performance metrics;

responsive to determining that the node is busy, cordoning the node by directly modifying node specification metadata to set an unschedulable flag to indicate a state where no new workloads can be scheduled on the node while allowing existing workloads to continue operating;

evicting at least one container workload from the cordoned node; and

in response to determining that the node is no longer busy after cordoning by accessing performance metrics of the node following cordoning and determining resource usage is below a predetermined threshold, uncordoning the node by modifying the metadata associated with the state of the node to indicate a state that enables scheduling of new workloads on the node.

2 . The method of claim 1 , wherein the under-provisioned level is a level below a predetermined percentile of historical resource usage of container workloads.

3 . The method of claim 1 , wherein the method further comprises:

migrating the evicted container workload to another node that is not busy and is with a sufficient resource.

4 . The method of claim 1 , wherein the method further comprises:

responsive to determining that all nodes are busy, triggering an autoscale function to generate a new node; and

migrating the evicted container workload to the new node.

5 . The method of claim 1 , wherein the performance metric of the one or more nodes comprises one or more pressure stall information (PSI) metrics associated with CPU, memory, or input/output.

6 . The method of claim 5 , wherein determining whether the node is busy includes:

analyzing the one or more PSI metrics to determine whether a full or partial resource contention on the node over a predefined time window is greater than the predetermined threshold; and

responsive to determining that the full or partial resource contention on the node over the predetermined time window is greater than the predetermined threshold, determining that the node is busy.

7 . The method of claim 1 , wherein evicting the at least one workload comprises:

selecting the at least one workload from a plurality of workloads currently running on the node based on one or more of resource consumption, workload priority, and quality of service (QoS) classification.

8 . The method of claim 1 , the method further comprising:

responsive to determining that all of the plurality of nodes lack sufficient resource or are busy,

provisioning a new node; and

migrating the evicted container workload to the new node.

9 . A non-transitory storage medium having instructions encoded thereon that, when executed by one or more processors, cause the one or more processors to perform steps comprising:

determining an amount of resource to be allocated for a container workload at an under-provisioned level;

scheduling the container workload onto a node among a plurality of nodes that has the determined amount of resources;

monitoring one or more performance metrics of the plurality of nodes,

determining whether the node is busy based on the monitored performance metrics;

responsive to determining that the node is busy, cordoning the node by directly modifying node specification metadata to set an unschedulable flag to indicate a state where no new workloads can be scheduled on the node while allowing existing workloads to continue operating;

evicting at least one container workload from the cordoned node; and

in response to determining that the node is no longer busy after cordoning by accessing performance metrics of the node following cordoning and determining resource usage is below a predetermined threshold, uncordoning the node by modifying the metadata associated with the state of the node to indicate a state that enables scheduling of new workloads on the node.

10 . The non-transitory storage medium of claim 9 , wherein the under-provisioned level is a level below a predetermined percentile of historical resource usage of container workloads.

11 . The non-transitory storage medium of claim 9 , wherein the steps further comprises:

migrating the evicted container workload to another node that is not busy and is with a sufficient resource.

12 . The non-transitory storage medium of claim 9 , wherein the steps further comprises:

responsive to determining that all nodes are busy, triggering an autoscale function to generate a new node; and

migrating the evicted container workload to the new node.

13 . The non-transitory storage medium of claim 9 , wherein the performance metric of the one or more nodes comprises one or more pressure stall information (PSI) metrics associated with CPU, memory, or input/output.

14 . The non-transitory storage medium of claim 13 , wherein determining whether the node is busy includes:

analyzing the one or more PSI metrics to determine whether a full or partial resource contention on the node over a predefined time window is greater than the predetermined threshold; and

responsive to determining that the full or partial resource contention on the node over the predetermined time window is greater than the predetermined threshold, determining that the node is busy.

15 . The non-transitory storage medium of claim 9 , wherein evicting at least one workload comprises:

selecting the at least one workload from a plurality of workloads currently running on the node based on one or more of resource consumption, workload priority, and quality of service (QoS) classification.

16 . The non-transitory storage medium of claim 9 , the steps further comprising:

responsive to determining that all of the plurality of nodes lack sufficient resource or are busy,

provisioning a new node; and

migrating the evicted container workload to the new node.

17 . A computing system comprising:

one or more processors; and

a non-transitory storage medium having instructions encoded thereon that, when executed by one or more processors, cause the one or more processors to perform steps comprising:

determining an amount of resource to be allocated for a container workload at an under-provisioned level;

scheduling the container workload onto a node among a plurality of nodes that has the determined amount of resources;

monitoring one or more performance metrics of the plurality of nodes,

determining whether the node is busy based on the monitored performance metrics;

responsive to determining that the node is busy, cordoning the node by directly modifying node specification metadata to set an unschedulable flag to indicate a state where no new workloads can be scheduled on the node while allowing existing workloads to continue operating;

evicting at least one container workload from the cordoned node; and

in response to determining that the node is no longer busy after cordoning by accessing performance metrics of the node following cordoning and determining resource usage is below a predetermined threshold, uncordoning the node by modifying the metadata associated with the state of the node to indicate a state that enables scheduling of new workloads on the node.

18 . The computing system of claim 17 , wherein the under-provisioned level is a level below a predetermined percentile of historical resource usage of container workloads.

19 . The computing system of claim 17 , wherein the steps further comprise:

migrating the evicted container workload to another node that is not busy and is with a sufficient resource.

20 . The computing system of claim 17 , wherein the steps further comprise:

responsive to determining that all nodes are busy, triggering an autoscale function to generate a new node; and

migrating the evicted container workload to the new node.

Assignments (2)
SECURITY INTEREST Recorded Sep 26, 2025
From: CAST AI GROUP, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 072393/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2024
From: KUPERMAN, LEONID
To: CAST AI GROUP, INC.
Reel/Frame 069655/0095 →
Continuity (4)
Provisional Application 63681519 · Aug 9, 2024
Provisional Application 63688979 · Aug 30, 2024
Provisional Application 63693521 · Sep 11, 2024
Related Publication 20260044390A1 · Feb 12, 2026
References Cited (8)
US 11595306B2 · Masnauskas et al. · 2023 [cited by applicant]
US 20210406035A1 · Price · 2021 [cited by examiner]
US 20220141201A1 · Lal · 2022 [cited by examiner]
US 20230350730A1 · Son · 2023 [cited by examiner]
US 20240069998A1 · Chatterjee · 2024 [cited by examiner]
US 20240220307A1 · Parikh · 2024 [cited by examiner]
US 20240250997A1 · Lahiri · 2024 [cited by examiner]
US 20240419506A1 · Mohana Narayanamurthy · 2024 [cited by examiner]