Dynamically allocating cache in a multi-tenant processing infrastructure
AssigneeInternational Business Machines Corporation
InventorsWesley M. Felter, Alexandre P. Ferreira, Karthick Rajamani, Juan C. Rubio, Cong Xu
Life of this patent
Estimating the term…
Abstract
Dynamically allocating cache in a multi-tenant infrastructure includes monitoring cache usage for multiple workloads in a multi-tenant processing infrastructure to determine a workload phase. A baseline performance level per workload is determined. The baseline performance level is dependent upon the workload phase. The workloads for each tenant are categorized based on cache utilization and the cache is allocated to each workload based on the baseline performance level, cache utilization, and system wide cache capacity.
Claims20
A computer-implemented method comprising:
- monitoring memory accesses per instruction for multiple workloads on a multi-tenant processing infrastructure to determine a workload phase based on the memory accesses per instruction;
- from a performance table which includes performance history specific to the workload phase, determining a baseline performance level per workload, which baseline performance level is dependent upon the workload phase;
- categorizing workloads of each tenant based on:
- cache utilization;
- and
- extracted information from the performance table whether performance for the workload, as indicated in instructions-per-cycle, would increase for the workload phase were more cache available;
- and
- allocating cache to each workload based on the baseline performance level, cache utilization, and system wide cache capacity.
A system comprising:
- multiple performance tables, each corresponding to a different workload phase to indicate performance as indicated in instructions-per-cycle for various number of cache ways;
- a monitor engine to:
- monitor cache usage for multiple workloads on a multi-tenant processing infrastructure to determine a workload phase;
- and
- collect statistics per workload, the statistics comprising:
- total L1 references of all cores assigned to the workload;
- total LLC references for all cores assigned to the workload;
- total LLC cache misses by the workload;
- and
- a size of the LLC cache consumed by the workload;
- a baseline engine to determine, from a performance table specific to the workload phase, a baseline performance level per workload, which baseline performance level is dependent upon the workload phase;
- a categorize engine to categorize workloads of each tenant based on:
- cache utilization;
- collected statistics;
- and
- extracted information from the performance table whether performance for the workload would increase for the workload phase were more cache available;
- and
- an allocate engine to allocate cache to each workload based on the baseline performance level, cache utilization, and service level agreements.
A computer program product for dynamically allocating cache, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to:
- monitor, by the processor, memory accesses per instructions for multiple workloads on a multi-tenant processing infrastructure;
- collect statistics per workload, the statistics comprising:
- total L1 references of all cores assigned to the workload;
- total LLC references for all cores assigned to the workload;
- total LLC cache misses by the workload;
- and
- a size of the LLC cache consumed by the workload;
- determine, by the processor, based on the memory accesses per instruction, a workload phase;
- determine, by the processor and from a performance table specific to the workload phase, a baseline performance level per workload, which baseline performance level is dependent upon the workload phase;
- categorize, by the processor, workloads of each tenant based on:
- cache utilization;
- collected statistics;
- and
- extracted information from the performance table whether performance for the workload, as indicated in instructions-per-cycle, would increase for the workload phase were more cache available;
- and
- allocate, by the processor, last level cache of multiple levels of cache, to each workload based on the baseline performance level, cache utilization, and system wide cache capacity.
Dependencies are inferred from the claim text.