VM Resource Allocation via Performance Model Inversion
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing resource allocation techniques for virtual datacenters struggle to determine optimal resource control settings due to varying resource demands over time, making it challenging to meet service level objectives (SLOs) effectively.
Innovation Solution
A method and system that construct a model of observed application performance based on current VM-level resource allocations, invert this model to compute target resource allocations, and determine desired individual VM-level resource settings, which are then used to set final RP-level and VM-level resource settings to meet user-defined SLOs, incorporating a safety buffer and delta value adjustments based on performance metrics.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If traditional resource control primitives (reservations, limits, shares) are used at VM or RP level, then administrators can control absolute and relative resource consumption, but determining the right settings becomes extremely challenging due to time-varying demands and different VM requirements
Solution Approach 1:
The system performs self-service by automatically determining optimal resource control settings through model construction and inversion. The application resource allocation module autonomously constructs performance models, inverts them to compute target allocations, and adjusts resource settings without requiring administrator intervention, thereby solving the challenge of determining right settings while ensuring SLO compliance
Solution Approach 2:
The system dynamically changes resource allocation parameters based on observed performance and time-varying demands. By constructing models that capture performance as a function of resource allocations and inverting these models, the system continuously adjusts reservation, limit, and share values to match current application needs, resolving the contradiction between static control settings and dynamic resource demands
2Reliability
If resource control settings are determined for one period of time, then applications may meet SLOs during that period, but settings become ineffective at later periods due to time-varying demands
Solution Approach 1:
The system implements dynamics by continuously updating resource control settings based on time-varying application demands. The model construction and inversion process is performed repeatedly, allowing the system to adapt reservation, limit, and share values as application performance characteristics change over time, thereby maintaining SLO compliance across different operational periods
Solution Approach 2:
The system employs feedback by using observed application performance metrics to refine and update resource allocation models. The performance data feeds back into the model construction process, which then generates updated target allocations, creating a closed-loop control system that continuously adapts to changing demands while ensuring SLOs are met
3Reliability
If different VMs supporting the same application are allocated different resource amounts, then each VM can meet its specific requirements, but determining the right allocation for each VM becomes extremely challenging
Solution Approach 1:
The system applies segmentation by determining resource control settings at the individual VM level rather than applying uniform settings across all VMs. The model construction and inversion process operates on per-VM basis, allowing each VM to receive customized resource allocations (reservations, limits, shares) tailored to its specific performance requirements, thereby resolving the complexity of determining individualized settings
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A system and method for managing resources in a distributed computer system that includes at least one resource pool for a set of virtual machines (VMs) utilizes a set of desired individual VM-level resource settings that corresponds to target resource allocations for observed performance of an application running in the distributed computer system. The set of desired individual VM-level resource settings are determined by constructing a model for the observed application performance as a function of current VM-level resource allocations and then inverting the function to compute the target resource allocations in order to meet at least one user-defined service level objective (SLO). The set of desired individual VM-level resource settings are used to determine final RP-level resource settings for a resource pool to which the application belongs and final VM-level resource settings for the VMs running under the resource pool, which are then selectively applied.