Memory Manager for Server Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Server systems with mixed input/output and compute-intensive workloads face performance degradation due to inefficient memory management, where large swaths of free memory are occupied by page caches, leading to memory pressure and potential use of swap space, causing the eviction of critical code pages and reducing server performance.
Innovation Solution
A memory manager that monitors resource and memory usage, initiating moderate clean-up operations during low resource usage to free up space in local memory and more aggressive clean-up operations during high memory pressure states, independently of processor, storage, and network usage, to prevent performance degradation and system failures.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If page caches are used for intensive block I/O operations, then I/O performance is improved, but free memory is occupied and memory pressure increases
Solution Approach 1:
The patent implements dynamic memory management by making the page cache size adjustable and adaptive. The cache size can be modified at runtime based on system conditions, allowing the system to optimize between I/O performance and available memory. This is achieved through kernel parameters that control the maximum cache size and automatic adjustment mechanisms that respond to memory pressure conditions.
Solution Approach 2:
The patent changes key parameters controlling page cache behavior, including the maximum cache size, the threshold for cache allocation, and the conditions for cache eviction. By modifying these parameters dynamically, the system can adapt to different workload conditions and prevent memory exhaustion while maintaining I/O performance.
2Productivity
If cache memory accumulates cached pages until the server runs out of memory, then I/O operations are optimized, but swap space is used and server performance degrades
Solution Approach 1:
The patent implements preliminary actions by proactively managing page cache eviction before memory exhaustion occurs. The system monitors memory usage and preemptively evicts cached pages when approaching memory limits, preventing the need to use swap space. This early intervention maintains I/O performance by keeping frequently accessed data in cache while avoiding the performance penalty of swapping.
Solution Approach 2:
The patent implements feedback mechanisms that monitor memory pressure conditions and adjust cache behavior accordingly. When memory usage approaches limits, the system receives feedback signals and automatically adjusts cache eviction policies to free up memory. This closed-loop control prevents performance degradation by maintaining an optimal balance between cache utilization and available memory.
3Quantity of substance
If the operating system kernel evicts least used code pages under high memory pressure, then memory pressure is reduced, but critical code pages are lost and server performance is reduced
Solution Approach 1:
The patent applies local quality by differentiating between different types of pages in the cache and applying different eviction policies to each. Instead of uniformly evicting all least-used pages, the system identifies and protects critical code pages from eviction while allowing less critical cached data to be evicted. This selective approach ensures that memory pressure is relieved without compromising the execution of critical server functions.
Solution Approach 2:
The patent implements self-service mechanisms where the memory management system automatically identifies and protects critical code pages without external intervention. The kernel monitors page usage patterns and autonomously determines which pages are critical to server operation, ensuring their retention in memory even under high memory pressure conditions.
Data Source
AI summary
A memory manager reduces the impact of memory clean-up operations on server performance. The memory manager monitors local memory usage and other resource usage by the server, such as processor, storage, and network usage. When moderately high memory usage is detected, the memory manager performs memory clean-up operations during relatively low processor, storage, and network usage to reduce the impact of the clean-up operations on server performance. When excessively high memory usage is detected, the memory manager more aggressively cleans-up local memory independently of processor, storage, and network usage.


