Dynamic Resource Allocation for Container SLO Consistency

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
ImproveSLO consistencyVSAvoidresource management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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

Inventive Principle:
Principle #15Dynamics

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

Inventive Principle:
Principle #23Feedback

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

Engineering Contradiction:
Improveresource delivery accuracyVSAvoidcgroup control flexibility
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

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

Inventive Principle:
Principle #35Parameter changes

3Productivity

If resources are increased to meet SLOs, then container performance improves, but system resource utilization becomes inefficient

Engineering Contradiction:
Improvecontainer performanceVSAvoidresource waste
Core Design Contradiction:
ProductivityVSLoss of energy

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

Inventive Principle:
Principle #15Dynamics

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

Engineering Contradiction:
Improveautomatic resource adjustmentVSAvoidmonitoring and adjustment system complexity
Core Design Contradiction:
Extent of automationVSDevice complexity

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

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10205675B2Dynamically adjusting resources to meet service level objectives
Publication Date: 2019.02.12 RED HAT INC
  • US10205675B2 patent drawing
  • US10205675B2 patent drawing
  • US10205675B2 patent drawing

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.