IP Library Granted Patent US 12,008,402
Granted Patent B2
US 12,008,402 · App. 17/459,670 · Granted Jun 11, 2024

Determining computer resource usage at multiple levels of a container orchestration system hierarchy

Inventors: Steve Mattar (Ra'anana, IL); Arie Bregman (Ra'anana, IL)
Assignee: Red Hat, Inc.
G06F9/5005G06F3/0604G06F3/0644G06F3/0673
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,008,402
App. No.
17/459,670
Granted
Jun 11, 2024
Kind
B2
Abstract

A monitor process identifies a first container executing on a worker node of a container orchestration system comprising a plurality of worker nodes, each worker node including a control plane component configured to execute a container in response to a request from a scheduler. The monitor process identifies a control group (cgroup) that corresponds to the first container. The monitor process generates a first resource utilization structure that corresponds to the first container. The monitor process, for each respective time of a plurality of successive times, obtains, by the monitor process, from the cgroup, one or more computer resource utilization values that identify real-time memory utilization of the first container at the respective time of the plurality of successive times. The monitor process stores, in the first resource utilization structure, computer resource utilization information based on the one or more computer resource utilization values.

Claims (94)

1. A method comprising:

identifying, by a monitor process executing on a computing device, a first container executing on a worker node of a container orchestration system comprising a plurality of worker nodes, each worker node comprising a control plane component configured to execute a container in response to a request from a scheduler;

identifying a control group (cgroup) that corresponds to the first container;

generating a first resource utilization structure that corresponds to the first container;

for each respective time of a plurality of successive times, obtaining, by the monitor process, from the cgroup, one or more computer resource utilization values that identify real-time memory utilization of the first container at the respective time of the plurality of successive times; and

storing, in the first resource utilization structure, computer resource utilization information based on the one or more computer resource utilization values.

2. The method of claim 1 further comprising:

accessing the computer resource utilization information in the first resource utilization structure;

determining a first aggregate memory utilization value based on the computer resource utilization information; and

sending, to an output device, information based on the first aggregate memory utilization value.

3. The method of claim 1 further comprising:

determining a namespace associated with the first container;

determining a second container associated with the namespace;

accessing the computer resource utilization information in the first resource utilization structure;

determining a first aggregate container memory utilization value for the first container based on the computer resource utilization information in the first resource utilization structure;

accessing computer resource utilization information in a second resource utilization structure;

determining a second aggregate container memory utilization value for the second container based on the computer resource utilization information in the second resource utilization structure;

aggregating the first aggregate container memory utilization value and the second aggregate container memory utilization value to generate an aggregate namespace memory utilization value; and

sending, to an output device, information based on the aggregate namespace memory utilization value, and a namespace identifier that identifies the namespace.

4. The method of claim 3 further comprising:

determining a memory charge associated with memory utilization;

determining a namespace memory utilization charge based on the aggregate namespace memory utilization value and the memory charge; and

sending, to the output device, the namespace identifier and the namespace memory utilization charge.

5. The method of claim 4 wherein determining the memory charge associated with the memory utilization comprises:

accessing a plurality of computer resource utilization charges, the plurality of computer resource utilization charges including the memory charge.

6. The method of claim 1 wherein identifying the first container executing on the worker node comprises requesting, by the monitor process from the container orchestration system, information that identifies each container executing on the worker node, and further comprising:

receiving, by the monitor process from the container orchestration system, a plurality of container identifiers including a first container identifier that identifies the first container.

7. The method of claim 6 wherein identifying the cgroup comprises identifying the cgroup based on the first container identifier.

8. The method of claim 1 further comprising:

determining that the first container is associated with a pod;

determining that a second container is associated with the pod;

accessing the computer resource utilization information in the first resource utilization structure;

determining a first aggregate container memory utilization value for the first container based on the computer resource utilization information in the first resource utilization structure;

accessing computer resource utilization information in a second resource utilization structure;

determining a second aggregate container memory utilization value for the second container based on the computer resource utilization information in the second resource utilization structure;

aggregating the first aggregate container memory utilization value and the second aggregate container memory value to generate an aggregate pod memory utilization value; and

sending, to an output device, information based on the aggregate pod memory utilization value, and a pod identifier that identifies the pod.

9. The method of claim 1 further comprising:

determining that the first container is associated with a pod;

determining that a plurality of pods, including the pod, are associated with a deployment;

determining, for each respective pod of the plurality of pods, one or more containers associated with the respective pod;

determining, for each respective pod of the plurality of pods, a corresponding aggregate pod memory utilization value based on computer resource utilization information associated with each of the one or more containers associated with the respective pod;

aggregating the corresponding aggregate pod memory utilization value of each respective pod of the plurality of pods to generate an aggregate deployment memory utilization value; and

sending, to an output device, information based on the aggregate deployment memory utilization value, and a deployment identifier that identifies the deployment.

10. The method of claim 1 wherein the one or more computer resource utilization values further identify real-time processor utilization values of the first container and real-time storage utilization values of the first container.

11. The method of claim 10 further comprising:

accessing the computer resource utilization information in the first resource utilization structure;

determining an aggregate container memory utilization value based on the computer resource utilization information;

determining an aggregate processor utilization value based on the computer resource utilization information;

determining an aggregate storage utilization value based on the computer resource utilization information; and

sending, to an output device, information based on the aggregate container memory utilization value, the aggregate processor utilization value, and the aggregate storage utilization value.

12. A computing device, comprising:

a memory; and

a processor device coupled to the memory to:

identify a first container executing on a worker node of a container orchestration system comprising a plurality of worker nodes, each worker node comprising a control plane component configured to execute a container in response to a request from a scheduler;

identify a control group (cgroup) that corresponds to the first container;

generate a first resource utilization structure that corresponds to the first container;

for each respective time of a plurality of successive times, obtain, by the monitor process, from the cgroup, one or more computer resource utilization values that identify real-time memory utilization of the first container at the respective time of the plurality of successive times; and

store, in the first resource utilization structure, computer resource utilization information based on the one or more computer resource utilization values.

13. The computing device of claim 12 wherein the processor device is further to:

determine a namespace associated with the first container;

determine a second container associated with the namespace;

access the computer resource utilization information in the first resource utilization structure;

determine a first aggregate container memory utilization value for the first container based on the computer resource utilization information in the first resource utilization structure;

access computer resource utilization information in a second resource utilization structure;

determine a second aggregate container memory utilization value for the second container based on the computer resource utilization information in the second resource utilization structure;

aggregate the first aggregate container memory utilization value and the second aggregate container memory utilization value to generate an aggregate namespace memory utilization value; and

send, to an output device, information based on the aggregate namespace memory utilization value, and a namespace identifier that identifies the namespace.

14. The computing device of claim 13 wherein the processor device is further to:

determine a memory charge associated with memory utilization;

determine a namespace memory utilization charge based on the aggregate namespace memory utilization value and the memory charge; and

send, to the output device, the namespace identifier and the namespace memory utilization charge.

15. The computing device of claim 12 wherein to identify the first container executing on the worker node, the processor device is further to request, from the container orchestration system, information that identifies each container executing on the worker node, and wherein the processor device is further to receive, from the container orchestration system, a plurality of container identifiers including a first container identifier that identifies the first container.

16. The computing device of claim 15 wherein to identify the cgroup, the processor device is further to identify the cgroup based on the first container identifier.

17. A non-transitory computer-readable storage medium that includes executable instructions configured to cause a processor device to:

identify a first container executing on a worker node of a container orchestration system comprising a plurality of worker nodes, each worker node comprising a control plane component configured to execute a container in response to a request from a scheduler;

identify a control group (cgroup) that corresponds to the first container;

generate a first resource utilization structure that corresponds to the first container;

for each respective time of a plurality of successive times, obtain, by the monitor process, from the cgroup, one or more computer resource utilization values that identify real-time memory utilization of the first container at the respective time of the plurality of successive times; and

store, in the first resource utilization structure, computer resource utilization information based on the one or more computer resource utilization values.

18. The non-transitory computer-readable storage medium of claim 17 wherein the instructions further cause the processor device to:

determine a namespace associated with the first container;

determine a second container associated with the namespace;

access the computer resource utilization information in the first resource utilization structure;

determine a first aggregate container memory utilization value for the first container based on the computer resource utilization information in the first resource utilization structure;

access computer resource utilization information in a second resource utilization structure;

determine a second aggregate container memory utilization value for the second container based on the computer resource utilization information in the second resource utilization structure;

aggregate the first aggregate container memory utilization value and the second aggregate container memory utilization value to generate an aggregate namespace memory utilization value; and

send, to an output device, information based on the aggregate namespace memory utilization value, and a namespace identifier that identifies the namespace.

19. The non-transitory computer-readable storage medium of claim 18 wherein the instructions further cause the processor device to:

determine a memory charge associated with memory utilization;

determine a namespace memory utilization charge based on the aggregate namespace memory utilization value and the memory charge; and

send, to the output device, the namespace identifier and the namespace memory utilization charge.

20. The non-transitory computer-readable storage medium of claim 17 wherein to identify the first container executing on the worker node, the instructions further cause the processor device to request, from the container orchestration system, information that identifies each container executing on the worker node, and wherein the instructions further cause the processor device to receive, from the container orchestration system, a plurality of container identifiers including a first container identifier that identifies the first container.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2021
From: MATTAR, STEVE; BREGMAN, ARIE
To: RED HAT, INC.
Reel/Frame 057314/0518 →
Cited By (1)
US 12,585,760