Virtual Machine Memory Overcommit via Central Scheduler
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current virtual machine management systems lack the necessary information to make intelligent decisions about resource allocation among virtual machines, leading to inefficient use of hardware resources due to static allocation and limited flexibility in memory distribution.
Innovation Solution
Implementing a system where virtual machines advertise their memory usage patterns to a central scheduler, allowing for dynamic resource sharing and allocation based on complementary usage patterns, enabling more efficient memory overcommitment and improved resource utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If memory overcommit is implemented without usage pattern information, then memory allocation flexibility is improved, but decision-making reliability deteriorates
Solution Approach 1:
The system collects and analyzes memory usage patterns from virtual machines before making allocation decisions. This preliminary information gathering enables the scheduler to make informed decisions about memory overcommitment, resolving the contradiction by preparing necessary data in advance that improves both flexibility and reliability.
Solution Approach 2:
The system implements continuous monitoring of memory usage patterns and uses this feedback to dynamically adjust memory allocation decisions. The scheduler receives usage pattern information from virtual machines and uses this feedback loop to make reliable decisions while maintaining allocation flexibility, directly addressing the technical contradiction.
2Device complexity
If static memory allocation is used, then system simplicity is improved, but resource utilization efficiency deteriorates
Solution Approach 1:
The system transitions from static to dynamic memory allocation by implementing a scheduler that continuously monitors usage patterns and adjusts allocations in real-time. This dynamic approach maintains reasonable system complexity while dramatically improving resource utilization efficiency through adaptive memory management.
Solution Approach 2:
Virtual machines autonomously report their memory usage patterns to the scheduler, which then makes allocation decisions based on collected data. This self-service mechanism reduces the complexity of centralized monitoring while enabling efficient resource utilization through distributed information gathering.
3Adaptability or versatility
If memory balloon driver is used for overcommit, then memory flexibility is improved, but information availability for scheduling deteriorates
Solution Approach 1:
The system introduces a central scheduler as an intermediary between the memory balloon driver and virtual machines. This scheduler collects detailed usage pattern information from VMs and uses it to make informed allocation decisions, preserving information that would otherwise be lost while maintaining the flexibility provided by balloon drivers.
Solution Approach 2:
The scheduler proactively collects and analyzes memory usage patterns before making allocation decisions, rather than reacting to balloon driver requests in isolation. This preliminary information gathering ensures that scheduling decisions are based on comprehensive data, preventing information loss while maintaining flexibility.
Data Source
AI summary
This disclosure describes, generally, methods and systems for implementing memory overcommit of virtual machines. The method includes establishing a plurality of virtual machines on a physical machine, broadcasting, from each of the plurality of virtual machines to a central scheduler, resource usage requirements, and then based at least in part on the resource usage requirements broadcasted from each of the plurality of virtual machines, determining a resource requirements schedule for each of the plurality of virtual machines. The method further includes receiving at least one resource request from at least one of the plurality of virtual machines, based on the resource requirements schedule, un-assigning resources from at least one of the plurality of virtual machines, and assigning the un-assigned resources to the at least one of the plurality of virtual machines which initiated the resource request.


