Software Container Memory Bandwidth Control via Monitoring Layer
Find Innovative SolutionsGenerate 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
Engineering 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
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.
2Productivity
If a monitoring layer is implemented to control memory bandwidth, then memory bandwidth consumption is controlled, but system complexity increases
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.
3Measurement precision
If performance monitoring is implemented through software, then memory bandwidth can be monitored, but computer resource impact increases
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.
4Productivity
If containers are suspended to control memory bandwidth, then memory bandwidth usage is limited, but container execution time increases
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.
Data Source
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.


