Multi-core processors, data centers, and public clouds make hardware sharing ubiquitous in today's typical computing environments. Multi-tenancy has become common practice. Meanwhile, applications are often designed perceiving themselves the only users of a given platform. While the underlying systems see different reality, they too often fall behind the level of sharing expected in today's infrastructures.
In this talk, I will give an overview of our research in recent years on improving application performance and resource utilization, by redesigning system software to adapt to trends of hardware sharing. We then focus on two projects at very different system levels: (1) RAID+,a new RAID construction mechanism that spreads both normal I/O and
reconstruction workloads to a disk pool much larger than existing RAID arrays, and (2) KPart, a cache allocation strategy that combines cache way sharing and partitioning, to perform workload-aware resource management on multicore processors. Our results show that significant efficiency improvement can be obtained by designing systems considering the diversity in needs of applications running concurrently on top.