OLM: online LLC management for container-based cloud service

In contrast to the hypervisor-based virtualization method, the container-based scheme does not incur the overhead required by virtual machines since it requires neither a fully abstract hardware stack nor separate guest operating systems (OSes). In this virtualization method, the host OS controls the accesses of the containers to hardware resources. One container can thus be provided with resources such as CPU, memory and network, expectedly isolated from the others. However, due to the lack of architectural support, the last-level cache (LLC) is not utilized in an isolated manner, and thus, it is shared by all containers in the same cloud infrastructure. If a workload of a container leads to cache pollution, it negatively affects the performance of other workloads. To address this problem, we propose an efficient LLC management scheme. By monitoring the memory access pattern, the indirect LLC usage pattern of a container can be figured out. Then, our proposed scheme makes two groups at runtime without using any offline profiling data on containers. The first group is made up of cache-thrashing containers, which fill up the LLC without any temporal locality of data, and the second one consists of normal ones. For isolation, the two separate groups use different partitions of the LLC by the OS-based page coloring method. Our experimental study suggests that the performance of a normal container can be improved by up to 40% in the case of using our proposed scheme.

[1]  Svetozar Miuÿ,et al.  DejaVu: Accelerating Resource Allocation in Virtualized Environments , 2012 .

[2]  Prateek Sharma,et al.  Per-VM page cache partitioning for cloud computing platforms , 2016, 2016 8th International Conference on Communication Systems and Networks (COMSNETS).

[3]  Ravi Pendse,et al.  Selective prefetching: prefetching when only required , 1999, 42nd Midwest Symposium on Circuits and Systems (Cat. No.99CH36356).

[4]  Sangyeun Cho,et al.  Managing Distributed, Shared L2 Caches through OS-Level Page Allocation , 2006, 2006 39th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO'06).

[5]  Hwanju Kim,et al.  vCache: Architectural support for transparent and isolated virtual LLCs in virtualized environments , 2015, 2015 48th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[6]  Aamer Jaleel,et al.  CRUISE: cache replacement and utility-aware scheduling , 2012, ASPLOS XVII.

[7]  Andrew Wolfe,et al.  Software-based cache partitioning for real-time applications , 1994 .

[8]  G. Edward Suh,et al.  Dynamic Partitioning of Shared Cache Memory , 2004, The Journal of Supercomputing.

[9]  Aman Kansal,et al.  Q-clouds: managing performance interference effects for QoS-aware clouds , 2010, EuroSys '10.

[10]  Fabio Checconi,et al.  Providing Performance Guarantees to Virtual Machines Using Real-Time Scheduling , 2010, Euro-Par Workshops.

[11]  Aamer Jaleel,et al.  Adaptive insertion policies for managing shared caches , 2008, 2008 International Conference on Parallel Architectures and Compilation Techniques (PACT).

[12]  Ying Ye,et al.  COLORIS: A dynamic cache partitioning system using page coloring , 2014, 2014 23rd International Conference on Parallel Architecture and Compilation (PACT).

[13]  Zhao Zhang,et al.  Gaining insights into multicore cache partitioning: Bridging the gap between simulation and real systems , 2008, 2008 IEEE 14th International Symposium on High Performance Computer Architecture.

[14]  AdveSarita,et al.  Reconfigurable caches and their application to media processing , 2000 .

[15]  Miika Komu,et al.  Hypervisors vs. Lightweight Virtualization: A Performance Comparison , 2015, 2015 IEEE International Conference on Cloud Engineering.

[16]  Yale N. Patt,et al.  Utility-Based Cache Partitioning , 2006 .

[17]  Antti Ylä-Jääski,et al.  A virtual machine placement algorithm for balanced resource utilization in cloud data centers , 2014, 2014 IEEE 7th International Conference on Cloud Computing.

[18]  Tien-Fu Chen,et al.  Lifetime-aware LRU promotion policy for last-level cache , 2015, VLSI Design, Automation and Test(VLSI-DAT).

[19]  George A. F. Seber,et al.  Linear regression analysis , 1977 .

[20]  Zhen Xiao,et al.  Dynamic Resource Allocation Using Virtual Machines for Cloud Computing Environment , 2013, IEEE Transactions on Parallel and Distributed Systems.

[21]  Amin Vahdat,et al.  Enforcing Performance Isolation Across Virtual Machines in Xen , 2006, Middleware.

[22]  Saurabh Gupta,et al.  Spatial Locality-Aware Cache Partitioning for Effective Cache Sharing , 2015, 2015 44th International Conference on Parallel Processing.

[23]  Orna Agmon Ben-Yehuda,et al.  Ginseng: Market-Driven LLC Allocation , 2016, USENIX Annual Technical Conference.

[24]  David Eklov,et al.  Reducing Cache Pollution Through Detection and Elimination of Non-Temporal Memory Accesses , 2010, 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis.

[25]  Alexandra Fedorova,et al.  Addressing shared resource contention in multicore processors via scheduling , 2010, ASPLOS XV.

[26]  Michael Stumm,et al.  Reducing the harmful effects of last-level cache polluters with an OS-level, software-only pollute buffer , 2008, 2008 41st IEEE/ACM International Symposium on Microarchitecture.

[27]  Hai Jin,et al.  CCAP: A Cache Contention-Aware Virtual Machine Placement Approach for HPC Cloud , 2013, International Journal of Parallel Programming.

[28]  Hai Jin,et al.  NightWatch: Integrating Lightweight and Transparent Cache Pollution Control into Dynamic Memory Allocation Systems , 2015, USENIX Annual Technical Conference.

[29]  Ragunathan Rajkumar,et al.  A Coordinated Approach for Practical OS-Level Cache Management in Multi-core Real-Time Systems , 2013, 2013 25th Euromicro Conference on Real-Time Systems.

[30]  Piotr Indyk,et al.  Maintaining Stream Statistics over Sliding Windows , 2002, SIAM J. Comput..

[31]  Onur Mutlu,et al.  The evicted-address filter: A unified mechanism to address both cache pollution and thrashing , 2012, 2012 21st International Conference on Parallel Architectures and Compilation Techniques (PACT).

[32]  G. Edward Suh,et al.  A new memory monitoring scheme for memory-aware scheduling and partitioning , 2002, Proceedings Eighth International Symposium on High Performance Computer Architecture.

[33]  Xiao Zhang,et al.  Towards practical page coloring-based multicore cache management , 2009, EuroSys '09.

[34]  Zhao Zhang,et al.  Soft-OLP: Improving Hardware Cache Performance through Software-Controlled Object-Level Partitioning , 2009, 2009 18th International Conference on Parallel Architectures and Compilation Techniques.

[35]  Yan Solihin,et al.  Fair cache sharing and partitioning in a chip multiprocessor architecture , 2004, Proceedings. 13th International Conference on Parallel Architecture and Compilation Techniques, 2004. PACT 2004..

[36]  Nam Thoai,et al.  Using Docker in high performance computing applications , 2016, 2016 IEEE Sixth International Conference on Communications and Electronics (ICCE).

[37]  Norman P. Jouppi,et al.  Reconfigurable caches and their application to media processing , 2000, Proceedings of 27th International Symposium on Computer Architecture (IEEE Cat. No.RS00201).

[38]  David K. Tam,et al.  Managing Shared L2 Caches on Multicore Systems in Software , 2007 .

[39]  Xiaoning Ding,et al.  ULCC: a user-level facility for optimizing shared cache performance on multicores , 2011, PPoPP '11.