IP Library Granted Patent US 10,338,824
Granted Patent B2
US 10,338,824 · App. 15/807,758 · Granted Jul 2, 2019

Bandwidth management of memory through containers

Inventors: Daniel Battaiola Kreling (Sao Paulo, BR); Rafael Camarda Silva Folco (Sao Paulo, BR); Breno H. Leitao (Araraquara, BR); Mauro Sergio Martins Rodrigues (Sao Paulo, BR)
Assignee: International Business Machines Corporation
G06F3/0613G06F3/0659G06F3/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 10,338,824
App. No.
15/807,758
Granted
Jul 2, 2019
Kind
B2
Abstract

Embodiments of the present invention disclose a method, computer program product, and system for managing memory bandwidth usage in software containers. Software container properties are received from a software container engine. In response to detecting the execution of one or more software containers by the software container engine, a monitoring layer is generated. At periodic time intervals, the generated monitoring layer monitors a memory bandwidth use value associated with each of the executed software containers. For each periodic time interval, an average memory use value is calculated, associated with each executed software container. In response to the calculated average memory use value being above a threshold associated with a monitored software container of the executed containers, the monitored software container is suspended for a suspend time duration. The suspended monitored software container is reactivated based on the suspend time duration expiring.

Claims (44)

1. A computer-implemented method for managing memory bandwidth usage in containers, the method comprising:

receiving software container properties from a software container engine, wherein the software container properties include at least a max memory bandwidth use value;

in response to detecting execution of one or more software containers by the software container engine, generating a monitoring layer;

at periodic time intervals, monitoring, by the generated monitoring layer, a memory bandwidth use value associated with each of the executed software containers;

for each periodic time interval, calculating an average memory use value associated with each executed software container;

in response to the calculated average memory use value being above a threshold associated with a monitored software container of the executed containers, suspending the monitored software container for a suspend time duration, wherein the memory bandwidth use value associated with the suspended software container does not increase; and

reactivating the suspended monitored software container based on the suspend time duration expiring.

2. The computer-implemented method of claim 1 , wherein software container properties further include: one or more memory bandwidth access permission settings.

3. The computer-implemented method of claim 1 , further comprising:

in response to the calculated average memory use value being equal to or below the threshold, calculating the average memory use value associated with each executed software container for a next time interval.

4. The computer-implemented method of claim 1 , wherein suspending the software container is based on receiving a suspend command from an operating system kernel associated with a performance monitoring unit.

5. The computer-implemented method of claim 1 , wherein the suspend time duration is equal to the calculated average memory use value minus the max memory bandwidth use value, divided by the max memory-bandwidth use value.

6. The computer-implemented method of claim 1 , wherein the suspend time duration is an integer value rounded up to a nearest integer value.

7. The computer-implemented method of claim 1 , wherein the software container properties are received via a performance monitoring unit.

8. A computer program product for managing memory bandwidth usage in containers, the computer program product comprising:

one or more computer-readable storage media and program instructions stored on the one or more computer-readable storage media, the program instructions comprising:

instructions to receive software container properties from a software container engine, wherein the software container properties include at least a max memory bandwidth use value;

in response to instructions to detect execution of one or more software containers by the software container engine, instructions to generate a monitoring layer;

at periodic time intervals, instructions to monitor, by the generated monitoring layer, a memory bandwidth use value associated with each of the executed software containers;

for each periodic time interval, instructions to calculate an average memory use value associated with each executed software container;

in response to the calculated average memory use value being above a threshold associated with a monitored software container of the executed containers, instructions to suspend the monitored software container for a suspend time duration, wherein the memory bandwidth use value associated with the suspended software container does not increase; and

instructions to reactivate the suspended monitored software container based on the suspend time duration expiring.

9. The computer program product of claim 8 , wherein software container properties further include: one or more memory bandwidth access permission settings.

10. The computer program product of claim 8 , further comprising:

in response to the calculated average memory use value being equal to or below the threshold, instructions to calculate the average memory use value associated with each executed software container for a next time interval.

11. The computer program product of claim 8 , wherein instructions to suspend the software container is based on instructions to receive a suspend command from an operating system kernel associated with a performance monitoring unit.

12. The computer program product of claim 8 , wherein the suspend time duration is equal to the calculated average memory use value minus the max memory bandwidth use value, divided by the max memory-bandwidth use value.

13. The computer program product of claim 12 , wherein the suspend time duration is an integer value rounded up to a nearest integer value.

14. The computer program product of claim 8 , wherein the software container properties are received via a performance monitoring unit.

15. A computer system for managing memory bandwidth usage in containers, the computer system comprising:

one or more computer processors;

one or more computer-readable storage media;

program instructions stored on the computer-readable storage media for execution by at least one of the one or more processors, the program instructions comprising:

instructions to receive software container properties from a software container engine, wherein the software container properties include at least a max memory bandwidth use value;

in response to instructions to detect execution of one or more software containers by the software container engine, instructions to generate a monitoring layer;

at periodic time intervals, instructions to monitor, by the generated monitoring layer, a memory bandwidth use value associated with each of the executed software containers;

for each periodic time interval, instructions to calculate an average memory use value associated with each executed software container;

in response to the calculated average memory use value being above a threshold associated with a monitored software container of the executed containers, instructions to suspend the monitored software container for a suspend time duration, wherein the memory bandwidth use value associated with the suspended software container does not increase; and

instructions to reactivate the suspended monitored software container based on the suspend time duration expiring.

16. The computer system of claim 15 , wherein software container properties further include: one or more memory bandwidth access permission settings.

17. The computer system of claim 15 , wherein instructions to suspend the software container is based on instructions to receive a suspend command from an operating system kernel associated with a performance monitoring unit.

18. The computer system of claim 15 , wherein the suspend time duration is equal to the calculated average memory use value minus the max memory bandwidth use value, divided by the max memory-bandwidth use value.

19. The computer system of claim 18 , wherein the suspend time duration is an integer value rounded up to a nearest integer value.

20. The computer system of claim 15 , wherein the software container properties are received via a performance monitoring unit.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2017
From: BATTAIOLA KRELING, DANIEL; CAMARDA SILVA FOLCO, RAFAEL; LEITAO, BRENO H.; MARTINS RODRIGUES, MAURO SERGIO
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044079/0586 →
Continuity (1)
Related Publication 20190138223A1 · May 9, 2019