Processor Cache CLOS Allocation for Multi-Tenant Performance Isolation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing processor cache allocation technologies, such as Intel® RDT, focus on individual application performance without providing a holistic view of performance gains across the entire computing platform, neglecting the impact of workload assignment and shared cache partitioning among multiple applications.
Innovation Solution
Implementing a resource manager daemon (RMD) to manage cache class of service (CLOS) maps, which partition processor cache based on workload types, ensuring efficient allocation and monitoring of cache resources across multiple virtual machines and applications, using Intel® Cache Allocation Technology (CAT) and bitmasks to define cache classes, and integrating with orchestrator systems for resource management.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If processor cache resources are allocated to multiple tenants using traditional multi-tenancy approaches, then resource sharing is enabled, but cache performance and quality of service deteriorate due to lack of granular control
Solution Approach 1:
The cache is segmented into multiple independent Cache Classes of Service (CLOS), each with dedicated cache ways. This segmentation allows different tenants to be assigned to different CLOS, providing granular control over cache resource allocation and preventing performance interference between tenants while maintaining multi-tenancy support.
2Productivity
If cache resources are shared among multiple applications, then resource utilization increases, but performance isolation and quality of service guarantees are lost
Solution Approach 1:
The system dynamically allocates cache ways to different CLOS based on tenant requirements and workload characteristics. The cache allocation is not static but can be adjusted to maintain performance isolation while maximizing resource utilization. Performance guarantees are maintained through dynamic resource distribution across multiple CLOS.
Solution Approach 2:
Different regions of the cache (different CLOS) are assigned different quality characteristics based on tenant needs. Each CLOS can be optimized for specific workloads with appropriate associativity and allocation policies, providing local quality differentiation that enables both high utilization and performance isolation.
3Device complexity
If traditional multi-tenancy cache allocation is used, then system simplicity is maintained, but performance interference between tenants occurs
Solution Approach 1:
The cache is divided into multiple CLOS with dedicated cache ways, creating clear boundaries between tenant allocations. This segmentation structure, while adding some complexity, provides the necessary isolation to prevent performance interference and ensure consistent performance across tenants.
Solution Approach 2:
The CLOS architecture provides a universal framework that can accommodate multiple tenants with different performance requirements using the same underlying cache structure. The system maintains a unified cache controller that manages multiple CLOS, balancing complexity with functionality.
4Adaptability or versatility
If cache ways are dynamically allocated to CLOS, then resource flexibility increases, but monitoring and management complexity increases
Solution Approach 1:
The system implements monitoring mechanisms that track cache usage and performance metrics across CLOS. This feedback information is used to dynamically adjust cache way allocation to maintain optimal performance while managing the complexity of resource distribution. The feedback loop enables automated management decisions.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Examples include techniques to support a holistic view of cache class of service (CLOS). Examples include allocating processor cache resources to a plurality of CLOS. The allocation of processor cache resources to include allocation of cache ways for an n-way set of associative cache. Examples include monitoring usage of the plurality of CLOS to determine processor cache resource usage and to report the processor cache resource usage.