Memory Manager for Server Systems

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

VSEngineering 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

Engineering Contradiction:
ImproveI/O performanceVSAvoidfree memory
Core Design Contradiction:
ProductivityVSQuantity of substance

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
ImproveI/O operation efficiencyVSAvoidserver performance
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #23Feedback

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

Engineering Contradiction:
Improveavailable memoryVSAvoidserver performance
Core Design Contradiction:
Quantity of substanceVSReliability

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.

Inventive Principle:
Principle #3Local quality

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.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9948743B2Managing memory usage in server systems
Publication Date: 2018.04.17 SALESFORCE INC
  • US9948743B2 patent drawing
  • US9948743B2 patent drawing
  • US9948743B2 patent drawing

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.