Virtual Machine Memory Dispatching to Avoid Garbage Collection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Virtual machines experience performance delays due to garbage collection, which pauses active tasks and objects, and existing load balancing techniques either reduce heap memory size or require multiple VMs, leading to performance degradation and communication overheads.
Innovation Solution
A computer-implemented method that estimates unused memory in virtual machines, identifies VMs with sufficient unused memory for new applications, and dispatches these applications to VMs with available memory, minimizing the risk of garbage collection and optimizing memory usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If existing load balancing techniques reduce heap memory size, then memory allocation efficiency improves, but virtual machine performance degrades due to frequent garbage collection
Solution Approach 1:
The system performs preliminary estimation of memory requirements for incoming applications before dispatching them to virtual machines. By predicting the memory needs in advance and selecting target VMs with sufficient unused memory capacity, the system prevents future memory shortages that would trigger garbage collection, thus maintaining VM performance while improving memory allocation efficiency
Solution Approach 2:
The system maintains historical data on actual memory usage of applications and uses this feedback to continuously improve its estimation accuracy. By comparing predicted memory usage with actual usage, the system refines its prediction model to better identify suitable target VMs, thereby optimizing both memory allocation and performance without triggering frequent garbage collection
2Quantity of substance
If existing load balancing techniques require multiple virtual machines, then memory capacity increases, but system complexity and communication overhead increase
Solution Approach 1:
The system proactively monitors and estimates the unused memory capacity of existing virtual machines before new applications arrive. By maintaining an updated view of available memory resources in advance, the system can allocate memory within existing VMs rather than provisioning new ones, thereby increasing effective memory capacity without increasing the number of VMs or associated complexity
Solution Approach 2:
The system enables existing virtual machines to serve multiple applications dynamically by reallocating memory based on actual usage patterns. Instead of dedicating fixed memory to each VM, the system allows VMs to accommodate different applications with varying memory needs, making the existing VM infrastructure more versatile and reducing the need for additional VM instances
3Productivity
If virtual machines allocate sufficient memory to avoid garbage collection, then application execution efficiency improves, but memory allocation efficiency deteriorates
Solution Approach 1:
The system estimates the actual memory requirements of applications before dispatching them to virtual machines. By predicting memory needs in advance and allocating precisely the required amount rather than excessive memory, the system ensures sufficient memory is available for efficient execution while avoiding wasteful over-allocation that would reduce overall memory allocation efficiency
Solution Approach 2:
The system dynamically adjusts memory allocation parameters based on application characteristics and historical usage data. By changing the allocation strategy from fixed or conservative estimates to data-driven predictions, the system optimizes the balance between providing sufficient memory for efficient execution and maintaining high overall memory utilization across the virtualized environment
Data Source
AI summary
The method includes estimating an amount of unused memory in a memory allocation of one or more virtual machines based on a data associated with one or more applications previously dispatched to the one or more virtual machines. The method includes receiving a request for executing a new application. The method includes estimating an amount of memory utilized by one of the one or more virtual machines to execute the new application. The method includes dispatching the new application to one of the one or more virtual machine having an amount of unused memory exceeding the estimated amount of memory required to execute the new application. The method includes updating the data associated with the one or more applications previously dispatched to the one or more virtual machines by adding an identifier of the new application to the data.


