Improving Docker Registry Design Based on Production Workload Analysis

Containers offer an efficient way to run workloads as independent microservices that can be developed, tested and deployed in an agile manner. To facilitate this process, container frameworks offer a registry service that enables users to publish and version container images and share them with others. The registry service plays a critical role in the startup time of containers since many container starts entail the retrieval of container images from a registry. To support research efforts on optimizing the registry service, large-scale and realistic traces are required. In this paper, we perform a comprehensive characterization of a large-scale registry workload based on traces that we collected over the course of 75 days from five IBM data centers hosting production-level registries. We present a trace replayer to perform our analysis and infer a number of crucial insights about container workloads, such as request type distribution, access patterns, and response times. Based on these insights, we derive design implications for the registry and demonstrate their ability to improve performance. Both the traces and the replayer are open-sourced to facilitate further research.

[1]  Zhe Zhang,et al.  Memory resource allocation for file system prefetching: from a supply chain management perspective , 2009, EuroSys '09.

[2]  Andrea C. Arpaci-Dusseau,et al.  Slacker: Fast Distribution with Lazy Docker Containers , 2016, FAST.

[3]  Arif Merchant,et al.  TaP: Table-based Prefetching for Storage Caches , 2008, FAST.

[4]  Anna R. Karlin,et al.  Implementation and performance of integrated application-controlled file caching, prefetching, and disk scheduling , 1996, TOCS.

[5]  Tridib Mukherjee,et al.  CoMICon: A Co-Operative Management System for Docker Container Images , 2017, 2017 IEEE International Conference on Cloud Engineering (IC2E).

[6]  David J. Lilja,et al.  When Caches Aren't Enough: Data Prefetching Techniques , 1997, Computer.

[7]  Malgorzata Steinder,et al.  Performance Evaluation of Microservices Architectures Using Containers , 2015, 2015 IEEE 14th International Symposium on Network Computing and Applications.

[8]  Erez Zadok,et al.  Newer Is Sometimes Better: An Evaluation of NFSv4.1 , 2015, SIGMETRICS.

[9]  Mohamed Mohamed,et al.  In Search of the Ideal Storage Configuration for Docker Containers , 2017, 2017 IEEE 2nd International Workshops on Foundations and Applications of Self* Systems (FAS*W).

[10]  Ali Raza Butt,et al.  High performance in-memory caching through flexible fine-grained services , 2013, SoCC.

[11]  Yanpei Chen,et al.  Design implications for enterprise storage systems via multi-dimensional trace analysis , 2011, SOSP '11.

[12]  Ma Lin,et al.  FID: A Faster Image Distribution System for Docker Platform , 2017 .

[13]  Ali Anwar,et al.  MOS: Workload-aware Elasticity for Cloud Object Stores , 2016, HPDC.

[14]  Ali Anwar,et al.  Taming the cloud object storage with MOS , 2015, PDSW '15.

[15]  Ali Raza Butt,et al.  An in-memory object caching framework with adaptive load balancing , 2015, EuroSys.

[16]  Russel Hugo Patterson,et al.  Informed Prefetching and Caching (CMU-CS-97-204) , 1997 .

[17]  P. Menage Adding Generic Process Containers to the Linux Kernel , 2010 .

[18]  Song Jiang,et al.  Workload analysis of a large-scale key-value store , 2012, SIGMETRICS '12.

[19]  Larry L. Peterson,et al.  Container-based operating system virtualization: a scalable, high-performance alternative to hypervisors , 2007, EuroSys '07.

[20]  Y. Charlie Hu,et al.  Program-Counter-Based Pattern Classification in Buffer Caching , 2004, OSDI.

[21]  Ramakrishnan Rajamony,et al.  An updated performance comparison of virtual machines and Linux containers , 2015, 2015 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS).

[22]  Y. Charlie Hu,et al.  The Performance Impact of Kernel Prefetching on Buffer Cache Replacement Algorithms , 2005, IEEE Transactions on Computers.

[23]  Robbert van Renesse,et al.  An analysis of Facebook photo caching , 2013, SOSP.