Cascaded PID CPU Allocation for Service Levels and Utilization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current data storage systems face challenges in efficiently allocating and managing CPU resources across multiple applications and services, leading to inefficiencies in resource utilization and potential bottlenecks during peak workloads.
Innovation Solution
A cascaded PID controller system is implemented to monitor and manage CPU resources, using a first PID controller to determine when CPU resources are available and a second PID controller to optimize deallocation and allocation based on resource policies, ensuring efficient distribution and utilization of CPU resources across applications.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If CPU resources are statically allocated to applications, then service level requirements are guaranteed, but resource utilization efficiency deteriorates during varying workloads
Solution Approach 1:
The patent implements dynamic CPU resource allocation by replacing static allocation with a control system that continuously monitors workload conditions and adjusts resource distribution in real-time. The PID controller dynamically modifies the number of CPUs allocated to applications based on current system state, transforming the rigid static allocation into a flexible dynamic system that adapts to varying workload demands while maintaining service level requirements.
Solution Approach 2:
The patent employs a feedback mechanism where the PID controller continuously monitors system performance metrics and resource usage, then uses this feedback information to adjust CPU allocation decisions. The controller receives feedback about current workload conditions, resource utilization levels, and service level compliance, and uses this feedback to iteratively optimize resource distribution, resolving the contradiction between guaranteeing service levels and maximizing utilization efficiency.
2Productivity
If CPU resources are dynamically reallocated based on workload, then resource utilization efficiency improves, but system complexity increases
Solution Approach 1:
The patent introduces a PID controller as an intermediary component that mediates between workload conditions and CPU allocation decisions. This intermediary abstracts the complexity of dynamic resource management by implementing a well-established control theory framework, which simplifies the overall system architecture compared to implementing complex custom allocation algorithms. The PID controller serves as a manageable intermediate layer that handles the complexity of dynamic adjustments while presenting a simpler interface to the rest of the system.
Solution Approach 2:
The patent utilizes parameter changes within the PID controller framework to manage dynamic resource allocation. By adjusting the proportional, integral, and derivative parameters of the controller, the system can optimize its response characteristics without changing the fundamental allocation logic. This approach allows for fine-tuning the system's behavior to balance utilization efficiency and complexity, leveraging parameter optimization rather than structural complexity increases.
3Productivity
If more CPUs are allocated to applications, then application performance improves, but available free CPU resources decrease
Solution Approach 1:
The patent implements periodic monitoring and adjustment of CPU allocation through the PID controller, which continuously evaluates system state at regular intervals and makes incremental adjustments. This periodic action allows the system to allocate CPUs to applications when performance improvement is needed while periodically freeing up resources when they are no longer required, preventing permanent resource exhaustion and maintaining a balance between application performance and available free resources.
Solution Approach 2:
The PID controller uses parameter changes to dynamically adjust the number of allocated CPUs based on real-time system conditions. By modifying allocation parameters responsively, the system can increase CPU allocation to improve application performance when workload demands are high, and decrease allocation to preserve free resources when demands are low, thereby dynamically balancing these competing objectives without permanent resource commitment.
Data Source
AI summary
Techniques for allocating resources in a system may include: monitoring, using a first proportional-integral-derivative (PID) controller, a size of a pool of free shared resources of a first type; responsive to determining the size of the pool of the free shared resources is at least a minimum threshold, providing the size of the pool of free shared resources as an input to a second PID controller; monitoring, using the second PID controller, a total amount of resources of the first type that are available; determining, using the second PID controller and in accordance with one or more resource policies for one or more applications, a deallocation rate or amount; deallocating, using the second PID controller and in accordance with the deallocation rate or amount, resources of the first type; and allocating a least a first of the deallocated resources for use by one of the applications.


