Dynamic Resource Allocation for Container SLO Consistency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Containers in host computer systems often face sub-optimal performance due to disparities between advertised and delivered resources, as resource control groups (cgroups) are impacted by factors beyond their control, leading to inconsistencies in meeting service level objectives (SLOs).
Innovation Solution
A daemon process continuously monitors CPU, I/O, and network resource usage in directed acyclic graphs (DAGs) associated with different cgroups, incrementally adjusts resources to meet SLOs, and notifies an orchestrator when threshold limits are reached, potentially migrating containers to a second host if SLOs are not met.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If resources are statically allocated to containers through cgroups, then resource management is simple, but service level objectives cannot be consistently met due to external factors
Solution Approach 1:
The patent implements dynamic resource allocation by continuously monitoring resource usage metrics (CPU, memory, I/O, network) and adjusting cgroup resource limits in real-time based on actual container performance and SLO requirements, transitioning from static to dynamic resource management
Solution Approach 2:
The system establishes a feedback loop where resource usage is continuously measured, compared against SLOs, and used to trigger automatic resource adjustments through the cgroup interface, ensuring consistent SLO meeting while maintaining manageable complexity
2Quantity of substance
If cgroups are used for resource control, then resource allocation is simplified, but advertised resources do not match delivered resources due to external factors
Solution Approach 1:
The patent dynamically changes cgroup resource parameters (CPU shares, memory limits, I/O bandwidth, network throughput) based on monitored usage patterns and SLO requirements, ensuring advertised resources match actual delivered resources while preserving cgroup flexibility
3Productivity
If resources are increased to meet SLOs, then container performance improves, but system resource utilization becomes inefficient
Solution Approach 1:
The system dynamically adjusts resource allocation to match actual container needs, increasing resources only when SLOs are not met and decreasing them when sufficient, thereby improving container performance while preventing resource waste through continuous adaptation
4Extent of automation
If manual resource adjustment is performed, then resource allocation is simple to understand, but it cannot respond to changing conditions in real-time
Solution Approach 1:
The system implements self-service automation where the resource management daemon autonomously monitors container resource usage, compares it against SLOs, and adjusts cgroup parameters without human intervention, achieving real-time responsiveness while managing complexity through automated decision-making
Data Source
AI summary
The present disclosure provides for dynamic resource allocation to a container on a host. For example, in a first directed acyclic graph (“DAG”), a CPU resource usage of a container may be detected. In a second DAG, an I/O resource usage of the container may be detected. In a third DAG, a network traffic resource usage of the container may be detected. Each detected resource may be associated with a distinct control group. Each detected resource usage may be compared to a detected service level objective (“SLO”). Resources that fail to meet the SLO may be adjusted. Each adjusted resource usage may be compared to the SLO, and any resources that continue to fail to meet the SLO may be further adjusted. An orchestrator may be notified when a resource has been adjusted to a threshold limit and the container may be migrated to a second host.


