Container CPU Core Reallocation to Prevent Starvation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing static resource allocation methods in computing systems lead to inefficiencies and resource wastage, particularly in container environments where some containers are underutilized while others face resource starvation.

Innovation Solution

Implementing a dynamic resource allocation engine that monitors and redistributes CPU cores among containers based on utilization, ensuring containers with higher demands receive more resources and maintaining a minimum allocation to prevent starvation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If static allocation of host CPU cores to containers is used, then resource distribution is simple and stable, but resource utilization efficiency deteriorates due to wastage when containers are idle or underutilizing their share

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidCPU cycle wastage
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent implements dynamic core allocation that allows containers to borrow CPU cores from the global pool based on their current utilization needs. The system continuously monitors container performance and adjusts allocations in real-time, transforming the static allocation model into a dynamic one that adapts to changing workload conditions, thereby improving resource utilization efficiency while reducing CPU cycle wastage.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the allocation parameters from fixed static values to dynamic values that adjust based on container utilization metrics. By monitoring performance parameters and adjusting CPU core allocations accordingly, the system optimizes resource distribution to match actual demand, resolving the contradiction between simple stable distribution and efficient utilization.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If dynamic core allocation is implemented to optimize resource distribution, then resource utilization improves, but system complexity increases due to monitoring and redistribution mechanisms

Engineering Contradiction:
Improveresource utilizationVSAvoidallocation system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a self-service mechanism where containers automatically monitor their own utilization and request additional CPU cores from the global pool when needed. The allocation engine responds to these requests based on current system conditions, eliminating the need for complex centralized monitoring and manual redistribution mechanisms, thus reducing system complexity while maintaining high resource utilization.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system employs feedback mechanisms where container performance metrics are continuously monitored and used to adjust CPU allocations. This automated feedback loop enables dynamic optimization of resource distribution without requiring complex manual intervention or oversight, resolving the contradiction between improved resource utilization and increased system complexity.

Inventive Principle:
Principle #23Feedback

3Productivity

If CPU cores are dynamically borrowed from global pool, then containers with high demand receive more resources, but risk of resource starvation for other containers increases

Engineering Contradiction:
Improvecontainer performanceVSAvoidresource starvation risk
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements a controlled borrowing mechanism where containers can borrow CPU cores from the global pool up to a defined limit. This partial action approach allows high-demand containers to receive additional resources when available without completely depleting the global pool, thereby preventing resource starvation of other containers while still improving performance for those that need it.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system maintains a global pool of CPU cores as a cushion that prevents complete resource depletion. By preserving this buffer before potential starvation scenarios occur, the system ensures that even when some containers borrow heavily, there remain sufficient resources available to prevent starvation of other containers, thus maintaining system reliability.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Data Source

PatentUS12536047B2Dynamic core allocation among containers on a host
Publication Date: 2026.01.27 DELL PROD LP
  • US12536047B2 patent drawing
  • US12536047B2 patent drawing
  • US12536047B2 patent drawing

AI summary

A resource allocation engine distributes host resources, such as CPU cores, dynamically between a set of containers executing in the context of the host operating system. The resource allocation engine sets a lower limit on CPU allocation for each container to prevent the containers from being starved of CPU resources. The resource allocation engine monitors the utilization of the resources allocated to the containers, and redistributes the host resources dynamically among the containers based on the utilization values. Containers having high utilization values are assigned more resources correspondingly, and containers having low utilization values are assigned fewer resources. In some embodiments, the resource allocation engine assigns weights to the containers, and uses the weights to assign CPU resources for an upcoming assignment period. An operating system utility, such as C-groups, is used to implement the resource allocations to the containers for the assignment periods.