Managing multicore shared resources in consolidated environments

Nauman Rafique, Purdue University

Abstract

The number of available cores on multicore processors is increasing at a significant rate. This trend has encouraged enterprises to consolidate multiple workloads on single server to improve the utilization of their servers and reduce total power consumption. Unfortunately, the performance of individual workloads in consolidated environment is often unpredictable and sometimes even significantly worse than on dedicated servers. Thus there is a need to manage the shared resources in multicore processors including lower level hardware caches, DRAM bandwidth and on-chip interconnect. It is undesirable to manage these resources entirely in hardware (no policy flexibility) or software (high overhead). I solve the problem of managing multicore shared resources by dividing the problem into software driven macro-management and hardware-driven micro-management by using “quotas”—minimum resource allocation guarantees—as an intermediate abstraction. The software macromanages resource sharing by assigning resource quotas to sharers without participating in individual resource allocation/deallocation decisions. The quotas are communicated by the software to the architecture layer via a well-defined interface. The hardware micro-management mechanism guarantees that software-specified quotas are enforced, thus eliminating the need for (and the performance penalty of) temporally fine-grained software intervention. I propose hardware mechanisms and interfaces required for quota enforcement and communication for L2 caches and DRAM bandwidth. I have implemented the software framework required for managing these resources in a popular operating system (Linux) and hypervisor (XEN). My implementation allows arbitrary grouping of threads and processes for the purpose of resource management. It also allows hierarchical resource distribution where resources can be allocated to Virtual Machines (VMs), individual applications within VMs, and threads within an individual application. Sophisticated application level resource managers can be trivially created using this framework; an example would be managers which can dynamically allocate resource based on application level performance feedback like transaction throughput. I have tested my implementation in a full system simulator (SIMICS) with workloads including industry standard commercial and scientific benchmarks. My results show that my implementation achieves all the desired goals with little overheard.

Degree

Ph.D.

Advisors

Thottethodi, Purdue University.

Subject Area

Electrical engineering|Computer science

Off-Campus Purdue Users:
To access this dissertation, please log in to our
proxy server
.

Share

COinS