Dynamic Memory Resizing in Virtual Machines
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional virtual computing systems face inefficiencies due to random and inadequate memory allocation to virtual machines, leading to insufficient or excessive memory allocation, which affects performance and resource utilization, as they do not accurately reflect changing workload memory demands over time.
Innovation Solution
A memory resizing system that collects and analyzes memory usage information to generate current and historical profiles, computes an upper baseline based on peak usage, and dynamically adjusts initial memory allocations using a moving average to determine optimal final allocations, reducing reliance on memory compensating techniques and improving resource utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If memory allocation is increased to meet peak demand, then performance is improved, but resource utilization efficiency deteriorates due to excessive allocation during low demand periods
Solution Approach 1:
The patent implements dynamic memory allocation that automatically adjusts memory allocation based on real-time workload demands. The system monitors memory usage patterns and dynamically resizes memory allocations, transitioning from static to dynamic allocation to match actual needs, thereby improving both performance reliability and resource utilization efficiency simultaneously
Solution Approach 2:
The system employs feedback mechanisms by continuously monitoring memory usage metrics and using this information to adjust memory allocation. The monitoring component collects data on memory consumption patterns, and this feedback is used by the resizing component to optimize allocations, creating a closed-loop system that balances performance and efficiency
2Loss of energy
If memory allocation is decreased to improve resource utilization, then resource utilization efficiency is improved, but performance deteriorates due to insufficient memory during peak workloads
Solution Approach 1:
The system performs preliminary actions by proactively increasing memory allocation before peak workloads occur. By analyzing historical usage patterns and predicting future demands, the system pre-allocates memory resources, ensuring performance is maintained when needed while avoiding excessive allocation during low-demand periods
Solution Approach 2:
The patent changes the parameter of memory allocation from fixed to variable based on workload conditions. The system adjusts memory allocation parameters dynamically, changing them in response to monitored performance metrics and usage patterns, allowing optimization of both resource utilization and performance under different operating conditions
3Device complexity
If static memory allocation is used to simplify system configuration, then device complexity is reduced, but adaptability deteriorates as workload demands change over time
Solution Approach 1:
The system implements self-service by enabling virtual machines to automatically receive appropriate memory allocations without manual intervention. The monitoring and resizing components work autonomously to detect memory needs and adjust allocations, making the system self-adapting to workload changes while maintaining simple configuration for users
Solution Approach 2:
The patent transforms the static memory allocation configuration into a dynamic system that automatically adapts to changing workload demands. The configuration remains simple from the user perspective while the underlying system dynamically adjusts memory parameters based on real-time conditions, resolving the contradiction between simplicity and adaptability
Data Source
AI summary
A system and method for dynamically adjusting the amount of memory allocated to a virtual machine includes generating, by a memory resizing system, a current memory usage profile for the virtual machine. The memory resizing system and the virtual machine are part of a virtual computing system and the current memory usage profile is generated by mapping, as a function of time, memory usage information from the virtual machine. The system and method also include computing an upper baseline based upon a peak memory usage in the current memory profile, updating an initial memory allocation of the virtual machine based upon the upper baseline and a predetermined threshold for obtaining an initial revised memory allocation, determining a moving average of memory usage from a historical memory usage profile, and updating the initial revised memory allocation based upon the moving average of memory usage for obtaining a final revised memory allocation.


