Virtual PMEM Affinity Optimization via Hypervisor
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing solutions for managing virtual persistent memory (PMEM) devices in large multi-socket systems are complex, requiring users to manually optimize CPU socket affinity and memory allocation, which is burdensome and exposes users to additional complexity, especially for workloads needing strong CPU affinity.
Innovation Solution
A method and system that utilize a hypervisor to apportion memory resources and create child virtual PMEM devices based on affinity characteristics, optimizing CPU socket assignment and memory allocation transparently to the user, simplifying the process by handling the complexity of placement and resource allocation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If users manually optimize CPU socket affinity and memory allocation for virtual PMEM devices, then workload performance can be improved, but user complexity and operational burden increase significantly
Solution Approach 1:
The system performs self-service by automatically detecting CPU socket topology, identifying NUMA nodes, and allocating virtual PMEM devices to appropriate sockets without user intervention. The hypervisor autonomously optimizes affinity by examining physical CPU core distributions and making intelligent placement decisions, eliminating the need for users to manually configure affinity settings while maintaining optimal workload performance
Solution Approach 2:
The system performs preliminary action by pre-configuring virtual PMEM device affinity to CPU sockets during virtual machine initialization. The hypervisor proactively analyzes the physical CPU topology and memory distribution before workload execution, pre-optimizing the affinity settings so that when the workload runs, the optimal configuration is already in place without requiring real-time user adjustment
2Ease of operation
If virtual PMEM devices are allocated without considering CPU socket affinity, then allocation simplicity is maintained, but workload performance deteriorates due to weak CPU affinity
Solution Approach 1:
The hypervisor acts as an intermediary between the simple allocation interface and the complex affinity optimization requirements. Users interact with a simplified allocation mechanism while the hypervisor mediates by translating high-level allocation requests into optimized CPU socket assignments, automatically considering NUMA topology and CPU core distributions without exposing this complexity to users
Solution Approach 2:
The system segments the affinity optimization process into distinct phases: topology detection, NUMA node identification, CPU socket analysis, and virtual PMEM device placement. This segmentation allows the complex optimization logic to be handled systematically in the background while maintaining a simple user-facing allocation interface, separating the simplicity of user interaction from the complexity of optimization execution
Data Source
AI summary
A computer-implemented method and system for affinity based optimization of persistent memory volumes. Responsive to receiving a request for a parent virtual PMEM device, a total memory capacity is apportioned amongst virtual persistent memory (PMEM) resources and physical memory resources. In accordance with a target affinity characteristic, a set of virtual central processor unit (CPU) sockets are assigned. Each virtual CPU socket is configured based on at least one physical central processor unit (CPU) core in conjunction with a subset of the virtual PMEM and physical memory resources. Child virtual PMEM devices are created for respective ones of the virtual CPU sockets, each of the child virtual PMEM devices being dedicated to the parent virtual PMEM device.


