Virtual Machine Memory Overcommit via Central Scheduler

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvememory allocation flexibilityVSAvoiddecision-making reliability
Core Design Contradiction:
Adaptability or versatilityVSReliability

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #23Feedback

2Device complexity

If static memory allocation is used, then system simplicity is improved, but resource utilization efficiency deteriorates

Engineering Contradiction:
Improvesystem simplicityVSAvoidresource utilization efficiency
Core Design Contradiction:
Device complexityVSProductivity

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #25Self-service

3Adaptability or versatility

If memory balloon driver is used for overcommit, then memory flexibility is improved, but information availability for scheduling deteriorates

Engineering Contradiction:
Improvememory flexibilityVSAvoidinformation availability for scheduling
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10496446B2Altruistic dependable memory overcommit for virtual machines
Publication Date: 2019.12.03 ORACLE INT CORP
  • US10496446B2 patent drawing
  • US10496446B2 patent drawing
  • US10496446B2 patent drawing

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.