Software Container Memory Bandwidth Control via Monitoring Layer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software containers can consume excessive memory bandwidth, impacting the performance of other containers or the host system, which existing performance monitoring units cannot effectively manage by suspending or reactivating containers.

Innovation Solution

A monitoring layer is generated to calculate and manage memory bandwidth use within software containers, suspending containers that exceed a threshold and reactivating them when the bandwidth use falls below it, thereby preventing disproportionate memory usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software containers are allowed to run without monitoring, then container execution flexibility is maintained, but memory bandwidth consumption becomes uncontrolled and impacts system performance

Engineering Contradiction:
Improvecontainer execution flexibilityVSAvoidsystem performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent implements a monitoring layer that continuously monitors memory bandwidth consumption of containers and provides feedback to the container engine. When a container exceeds its allocated memory bandwidth threshold, the system suspends the container, and when the threshold is no longer exceeded, the container is reactivated. This closed-loop feedback mechanism maintains system performance while allowing flexible container execution within defined limits.

Inventive Principle:
Principle #23Feedback

2Productivity

If a monitoring layer is implemented to control memory bandwidth, then memory bandwidth consumption is controlled, but system complexity increases

Engineering Contradiction:
Improvememory bandwidth controlVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a monitoring layer as an intermediary component between the container engine and the hardware performance monitoring units. This monitoring layer aggregates performance data from multiple containers, compares it against allocated thresholds, and makes suspension/reactivation decisions. By placing this intermediary layer, the system achieves sophisticated memory bandwidth control without requiring complex modifications to the container engine or hardware.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If performance monitoring is implemented through software, then memory bandwidth can be monitored, but computer resource impact increases

Engineering Contradiction:
Improvememory bandwidth monitoring capabilityVSAvoidcomputer resource impact
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The patent replaces software-based performance monitoring with hardware-based performance monitoring units (PMUs) that are built into the processor. These PMUs automatically collect performance parameters such as memory bandwidth consumption, cache hits, and instruction cycles without requiring software intervention. This substitution significantly reduces the computational overhead and resource impact of monitoring while maintaining precise measurement capabilities.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

4Productivity

If containers are suspended to control memory bandwidth, then memory bandwidth usage is limited, but container execution time increases

Engineering Contradiction:
Improvememory bandwidth usage controlVSAvoidcontainer execution time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements periodic monitoring of container memory bandwidth consumption at defined time intervals. The monitoring layer checks whether containers are exceeding their allocated thresholds and suspends or reactivates containers based on these periodic assessments. This periodic action approach allows containers to execute continuously when compliant, with interruptions only when necessary to enforce bandwidth limits, thereby minimizing execution time loss while maintaining control.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS10338824B2Bandwidth management of memory through containers
Publication Date: 2019.07.02 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10338824B2 patent drawing
  • US10338824B2 patent drawing
  • US10338824B2 patent drawing

AI summary

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.