Memory Scheduler VM Page Classification
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In host computer systems supporting multiple virtual machines, memory over-commitment leads to physical memory shortages, degrading the performance of other virtual machines due to inefficient memory management.
Innovation Solution
A memory scheduler categorizes virtual machine memory pages into usage classes, estimates page requirements, and employs reclamation techniques like ballooning, swapping, and compression to dynamically allocate and reclaim memory based on host and virtual machine states.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If memory over-commitment is implemented to support more virtual machines, then the number of supported virtual machines increases, but physical memory shortages occur degrading performance of other virtual machines
Solution Approach 1:
The patent implements dynamic memory management by continuously monitoring memory usage patterns of virtual machines and adjusting memory allocation in real-time. The system categorizes memory pages into different usage classes (active, inactive, reusable) and dynamically reclaims memory from VMs with low usage while allocating to VMs with high usage demands, resolving the contradiction between supporting more VMs and maintaining performance reliability
Solution Approach 2:
The system employs feedback mechanisms by tracking memory access patterns and usage characteristics of each virtual machine. Based on this feedback, the memory scheduler makes intelligent decisions about which memory pages to reclaim and which to preserve, ensuring that memory reclamation does not degrade VM performance while enabling support for additional virtual machines through effective memory over-commitment
2Adaptability or versatility
If large amounts of virtual memory are allocated to handle unexpected load increases, then the VM can handle load increases, but physical memory demand increases limiting available memory for other VMs
Solution Approach 1:
The patent changes the state parameter of memory pages by categorizing them into different usage classes based on their access patterns. Memory pages are dynamically reclassified from active to inactive or reusable states when their usage characteristics change, allowing the system to reclaim memory that was previously allocated for potential load increases but is not currently being used, thus making memory available for other VMs while maintaining the ability to handle load increases
3Reliability
If memory is not reclaimed from VMs with unused allocated memory, then the allocated memory remains available to the VM, but physical memory shortages occur affecting other VMs
Solution Approach 1:
The patent extracts unused memory pages from virtual machines based on usage pattern analysis. The memory scheduler identifies memory pages that are allocated to VMs but not currently being used (categorized as inactive or reusable), and reclaims these pages for reallocation to the host system or other VMs, while maintaining the virtual memory allocation to ensure VM reliability and availability
Data Source
AI summary
A system and method are disclosed for improving operation of a memory scheduler operating on a host machine supporting virtual machines (VMs) in which guest operating systems and guest applications run. For each virtual machine, the host machine hypervisor categorizes memory pages into memory usage classes and estimates the total number of pages for each memory usage class. The memory scheduler uses this information to perform memory reclamation and allocation operations for each virtual machine. The memory scheduler further selects between ballooning reclamation and swapping reclamation operations based in part on the numbers of pages in each memory usage class for the virtual machine. Calls to the guest operating system provide the memory usage class information. Memory reclamation not only can improve the performance of existing VMs, but can also permit the addition of a VM on the host machine without substantially impacting the performance of the existing and new VMs.


