IP Library › Granted Patent US 12,536,042
Granted Patent B2
US 12,536,042 · App. 17/935,435 · Granted Jan 27, 2026

System and method of utilizing containers on an information handling system

Inventor: Shibi Panikkar (Bangalore, IN)
Assignee: Dell Products L.P.
G06F9/5016G06F9/45558G06F9/4881G06F9/5077G06F9/5083G06F2009/45583G06F2209/505
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,536,042
App. No.
17/935,435
Filed
Sep 26, 2022
Granted
Jan 27, 2026
Kind
B2
Art Unit
2196
USPC
718/104
Abstract

In one or more embodiments, one or more systems, one or more methods, and/or one or more processes may: execute a virtual machine; deploy a first calibration multiple pods associated with an application on the virtual machine; for each set of inputs of multiple sets of inputs: determine a processor utilization of the first calibration multiple pods and all additional calibration multiples of pods; and determine a memory utilization of the first calibration multiple pods and all additional calibration multiples pods; and determine a threshold number of pods associated with the application that can be utilized without exceeding a threshold amount of memory based at least on the processor utilization of the first calibration multiple pods and all additional calibration multiples of pods and based at least on the amount of memory allocated to the first calibration multiple pods and all additional calibration multiples of pods.

Claims (118)

1 . A physical information handling system, comprising:

at least one processor; and

a memory medium, coupled to the at least one processor, that stores instructions executable by the at least one processor, which when executed by the at least one processor, cause the physical information handling system to:

execute a virtual machine on the physical information handling system;

deploy a first calibration plurality of pods associated with an application on the virtual machine, wherein each pod of the first calibration plurality of pods includes one or more containers associated with the application;

for each set of inputs of a plurality of sets of inputs:

provide the set of calibration inputs to the first calibration plurality of pods and all additional calibration pluralities of pods associated with the application;

determine a processor utilization of the first calibration plurality of pods and all additional calibration pluralities of pods;

determine a memory utilization of the first calibration plurality of pods and all additional calibration pluralities of pods;

store, via the memory medium, the memory utilization of the first calibration plurality of pods and all additional calibration pluralities of pods;

determine, by a pod autoscaling process, if the memory utilization meets or exceeds a calibration memory utilization threshold;

determine the memory utilization meets or exceeds the calibration memory utilization threshold:

deploy an additional calibration plurality of pods associated with the application on the virtual machine, wherein each pod of the additional calibration plurality of pods includes one or more containers associated with the application;

determine an amount of memory allocated to the first calibration plurality of pods and all additional calibration pluralities of pods; and

store, via the memory medium, the amount of memory allocated to the first calibration plurality of pods and all additional calibration pluralities of pods; and

determine the memory utilization does not meet or exceed the calibration memory utilization threshold, perform:

determining the amount of memory allocated to the first calibration plurality of pods and all additional calibration pluralities of pods and storing, via the memory medium, the amount of memory allocated to the first calibration plurality of pods and all additional calibration pluralities of pods; and

iteratively increase a number of pods associated with the application until there is an increase in deviation in response time to the set of calibration inputs and resource consumption of the memory compared to the previous number of pods to determine a threshold number of pods associated with the application that can be utilized without exceeding a threshold amount of memory based at least on the processor utilization of the first calibration plurality of pods and all additional calibration pluralities of pods and based at least on the amount of memory allocated to the first calibration plurality of pods and all additional calibration pluralities of pods, wherein the threshold number of pods is a maximum number of pods that are able to access the memory at a time without decreasing the processor utilization and resulting in a crash of the physical information handling system;

deploy a first runtime plurality of pods associated with the application on the virtual machine based on the threshold number of pods to avoid processing bottlenecks at the physical information handling system, wherein each pod of the first runtime plurality of pods includes one or more containers associated with the application; and

process a request utilizing one or more of the first runtime plurality of pods at limited computing resources based on avoiding the processing bottlenecks at the physical information handling system.

2 . The physical information handling system of claim 1 , wherein each number in the set of calibration inputs in the plurality of sets of inputs is a positive number and greater than zero.

3 . The physical information handling system of claim 1 , wherein the instructions further cause the physical information handling system to:

receive, by the first runtime plurality of pods, a first plurality of runtime inputs;

determine, by the pod autoscaling process, a memory utilization of the first runtime plurality of pods;

determine, by the pod autoscaling process, that the memory utilization of the first runtime plurality of pods meets or exceeds a runtime memory utilization threshold;

deploy an additional runtime plurality of pods associated with the application on the virtual machine, wherein each pod of the additional runtime plurality of pods includes one or more containers associated with the application;

determine that the first runtime plurality of pods and the additional runtime plurality of pods meets or exceeds the threshold number of pods associated with the application that can be utilized without exceeding the threshold amount of memory; and

in response to determining that the first runtime plurality of pods and the additional runtime plurality of pods meets or exceeds the threshold number of pods:

receive an additional plurality of runtime inputs; and

queue the additional plurality of runtime inputs in a queue.

4 . The physical information handling system of claim 3 ,

wherein, to receive the additional plurality of runtime inputs, the instructions further cause the physical information handling system to receive, by a resource manager executing on the virtual machine, the additional plurality of runtime inputs; and

wherein, to queue the additional plurality of runtime inputs in the queue, the instructions further cause the physical information handling system to queue, by the resource manager, the additional plurality of runtime inputs in the queue.

5 . The physical information handling system of claim 3 , wherein the instructions further cause the physical information handling system to:

prevent the pod autoscaling process from deploying any supplemental runtime pod associated with the application.

6 . The physical information handling system of claim 5 , wherein the instructions further cause the physical information handling system to:

determine that the first runtime plurality of pods and the additional runtime plurality of pods can be scaled down; and

terminate at least one runtime pod of the first runtime plurality of pods and the additional runtime plurality of pods from executing.

7 . The physical information handling system of claim 6 , wherein the instructions further cause the physical information handling system to:

dequeue at least a portion of the additional plurality of runtime inputs from the queue; and

process, by the first runtime plurality of pods, the at least a portion of the additional plurality of runtime inputs.

8 . A method, comprising:

executing a virtual machine on a physical information handling system;

deploying a first calibration plurality of pods associated with an application on the virtual machine, wherein each pod of the first calibration plurality of pods includes one or more containers associated with the application;

for each set of inputs of a plurality of sets of inputs:

providing the set of calibration inputs to the first calibration plurality of pods and all additional calibration pluralities of pods associated with the application;

determining a processor utilization of the first calibration plurality of pods and all additional calibration pluralities of pods;

determining a memory utilization of the first calibration plurality of pods and all additional calibration pluralities of pods;

storing, via a memory medium, the memory utilization of the first calibration plurality of pods and all additional calibration pluralities of pods;

determining, by a pod autoscaling process, if the memory utilization meets or exceeds a calibration memory utilization threshold;

determine the memory utilization meets or exceeds the calibration memory utilization threshold:

deploying an additional calibration plurality of pods associated with the application on the virtual machine, wherein each pod of the additional calibration plurality of pods includes one or more containers associated with the application;

determining an amount of memory allocated to the first calibration plurality of pods and all additional calibration pluralities of pods; and

storing, via the memory medium, the amount of memory allocated to the first calibration plurality of pods and all additional calibration pluralities of pods; and

determine the memory utilization does not meet or exceed the calibration memory utilization threshold, performing:

determining the amount of memory allocated to the first calibration plurality of pods and all additional calibration pluralities of pods and storing, via the memory medium, the amount of memory allocated to the first calibration plurality of pods and all additional calibration pluralities of pods; and

iteratively increase a number of pods associated with the application until there is an increase in deviation in response time to the set of calibration inputs and resource consumption of the memory compared to the previous number of pods to determine a threshold number of pods associated with the application that can be utilized without exceeding a threshold amount of memory based at least on the processor utilization of the first calibration plurality of pods and all additional calibration pluralities of pods and based at least on the amount of memory allocated to the first calibration plurality of pods and all additional calibration pluralities of pods, wherein the threshold number of pods is a maximum number of pods that are able to access the memory at a time without decreasing the processor utilization and resulting in a crash of the physical information handling system,

deploy a first runtime plurality of pods associated with the application on the virtual machine based on the threshold number of pods to avoid processing bottlenecks at the physical information handling system, wherein each pod of the first runtime plurality of pods includes one or more containers associated with the application; and

process a request utilizing one or more of the first runtime plurality of pods at limited computing resources based on avoiding the processing bottlenecks at the physical information handling system.

9 . The method of claim 8 , wherein each number in the set of calibration inputs in the plurality of sets of inputs is a positive number and greater than zero.

10 . The method of claim 8 , further comprising:

receiving, by the first runtime plurality of pods, a first plurality of runtime inputs;

determining, by the pod autoscaling process, a memory utilization of the first runtime plurality of pods;

determining, by the pod autoscaling process, that the memory utilization of the first runtime plurality of pods meets or exceeds a runtime memory utilization threshold;

deploying an additional runtime plurality of pods associated with the application on the virtual machine, wherein each pod of the additional runtime plurality of pods includes one or more containers associated with the application;

determining that the first runtime plurality of pods and the additional runtime plurality of pods meets or exceeds the threshold number of pods associated with the application that can be utilized without exceeding the threshold amount of memory; and

in response to the determining that the first runtime plurality of pods and the additional runtime plurality of pods meets or exceeds the threshold number of pods:

receiving an additional plurality of runtime inputs; and

queuing the additional plurality of runtime inputs in a queue.

11 . The method of claim 10 ,

wherein the receiving the additional plurality of runtime inputs includes receiving, by a resource manager executing on the virtual machine, the additional plurality of runtime inputs; and

wherein the queuing the additional plurality of runtime inputs in the queue includes queuing, by the resource manager, the additional plurality of runtime inputs in the queue.

12 . The method of claim 10 , further comprising:

preventing the pod autoscaling process from deploying any supplemental runtime pod associated with the application.

13 . The method of claim 12 , further comprising:

determining that the first runtime plurality of pods and the additional runtime plurality of pods can be scaled down; and

terminating at least one runtime pod of the first runtime plurality of pods and the additional runtime plurality of pods from executing.

14 . The method of claim 13 , further comprising:

dequeuing at least a portion of the additional plurality of runtime inputs from the queue; and

processing, by the first runtime plurality of pods, the at least a portion of the additional plurality of runtime inputs.

15 . A computer-readable non-transitory memory medium that includes instructions that, when executed by at least one processor of a physical information handling system, cause the physical information handling system to:

execute a virtual machine on the physical information handling system;

deploy a first calibration plurality of pods associated with an application on the virtual machine, wherein each pod of the first calibration plurality of pods includes one or more containers associated with the application;

for each set of inputs of a plurality of sets of inputs:

provide the set of calibration inputs to the first calibration plurality of pods and all additional calibration pluralities of pods associated with the application;

determine a processor utilization of the first calibration plurality of pods and all additional calibration pluralities of pods;

determine a memory utilization of the first calibration plurality of pods and all additional calibration pluralities of pods;

store, via the memory medium, the memory utilization of the first calibration plurality of pods and all additional calibration pluralities of pods;

determine, by a pod autoscaling process, if the memory utilization meets or exceeds a calibration memory utilization threshold;

determine the memory utilization meets or exceeds the calibration memory utilization threshold:

deploy an additional calibration plurality of pods associated with the application on the virtual machine, wherein each pod of the additional calibration plurality of pods includes one or more containers associated with the application;

determine an amount of memory allocated to the first calibration plurality of pods and all additional calibration pluralities of pods; and

store, via the memory medium, the amount of memory allocated to the first calibration plurality of pods and all additional calibration pluralities of pods; and

determine the memory utilization does not meet or exceed the calibration memory utilization threshold, perform:

determining the amount of memory allocated to the first calibration plurality of pods and all additional calibration pluralities of pods and storing, via the memory medium, the amount of memory allocated to the first calibration plurality of pods and all additional calibration pluralities of pods; and

iteratively increase a number of pods associated with the application until there is an increase in deviation in response time to the set of calibration inputs and resource consumption of the memory compared to the previous number of pods to determine a threshold number of pods associated with the application that can be utilized without exceeding a threshold amount of memory based at least on the processor utilization of the first calibration plurality of pods and all additional calibration pluralities of pods and based at least on the amount of memory allocated to the first calibration plurality of pods and all additional calibration pluralities of pods, wherein the threshold number of pods is a maximum number of pods that are able to access the memory at a time without decreasing the processor utilization and resulting in a crash of the physical information handling system;

deploy a first runtime plurality of pods associated with the application on the virtual machine based on the threshold number of pods to avoid processing bottlenecks at the physical information handling system, wherein each pod of the first runtime plurality of pods includes one or more containers associated with the application; and

process a request utilizing one or more of the first runtime plurality of pods at limited computing resources based on avoiding the processing bottlenecks at the physical information handling system.

16 . The computer-readable non-transitory memory medium of claim 15 , wherein each number in the set of calibration inputs in the plurality of sets of inputs is a positive number and greater than zero.

17 . The computer-readable non-transitory memory medium of claim 15 , wherein the instructions further cause the physical information handling system to:

receive, by the first runtime plurality of pods, a first plurality of runtime inputs;

determine, by the pod autoscaling process, a memory utilization of the first runtime plurality of pods;

determine, by the pod autoscaling process, that the memory utilization of the first runtime plurality of pods meets or exceeds a runtime memory utilization threshold;

deploy an additional runtime plurality of pods associated with the application on the virtual machine, wherein each pod of the additional runtime plurality of pods includes one or more containers associated with the application;

determine that the first runtime plurality of pods and the additional runtime plurality of pods meets or exceeds the threshold number of pods associated with the application that can be utilized without exceeding the threshold amount of memory; and

in response to determining that the first runtime plurality of pods and the additional runtime plurality of pods meets or exceeds the threshold number of pods:

receive an additional plurality of runtime inputs; and

queue the additional plurality of runtime inputs in a queue.

18 . The computer-readable non-transitory memory medium of claim 17 ,

wherein, to receive the additional plurality of runtime inputs, the instructions further cause the physical information handling system to receive, by a resource manager executing on the virtual machine, the additional plurality of runtime inputs; and

wherein, to queue the additional plurality of runtime inputs in the queue, the instructions further cause the physical information handling system to queue, by the resource manager, the additional plurality of runtime inputs in the queue.

19 . The computer-readable non-transitory memory medium of claim 17 , wherein the instructions further cause the physical information handling system to:

prevent the pod autoscaling process from deploying any supplemental runtime pod associated with the application.

20 . The computer-readable non-transitory memory medium of claim 19 , wherein the instructions further cause the physical information handling system to:

determine that the first runtime plurality of pods and the additional runtime plurality of pods can be scaled down;

terminate at least one runtime pod of the first runtime plurality of pods and the additional runtime plurality of pods from executing;

dequeue at least a portion of the additional plurality of runtime inputs from the queue; and

process, by the first runtime plurality of pods, the at least a portion of the additional plurality of runtime inputs.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2022
From: PANIKKAR, SHIBI
To: DELL PRODUCTS L.P.
Reel/Frame 061217/0430 →
Continuity (1)
Related Publication 20240103918A1 · Mar 28, 2024
References Cited (7)
US 11843545B1 · Vasamsetti · 2023 [cited by examiner]
US 20180225155A1 · Watt, Jr. · 2018 [cited by examiner]
US 20200310881A1 · Gonzalez · 2020 [cited by examiner]
US 20220353201A1 · Navali · 2022 [cited by examiner]
US 20230080300A1 · Panikkar · 2023 [cited by examiner]
US 20240370307A1 · You · 2024 [cited by examiner]
Rossi, F. (Feb. 2020). Auto-scaling Policies to Adapt the Application Deployment in Kubernetes. In ZEUS (pp. 30-38). (Year: 2020). [cited by examiner]