
Performance Analysis of Containerized Applications on Local and Remote Storage Qiumin Xu∗, Manu Awasthiy, Krishna T. Malladiz, Janki Bhimanix, Jingpei Yangz and Murali Annavaram∗ ∗ Ming Hsieh Department of Electrical Engineering, University of Southern California fqiumin, [email protected] y Department of Computer Science and Engineering, Indian Institute of Technology - Gandhinagar, [email protected] z Samsung Semiconductor Inc. fk.tej, [email protected] x Department of Computer Engineering, Northeastern University, [email protected] Abstract—Docker containers are becoming the mainstay for Containers were proposed as a solution to alleviate deploying applications in cloud platforms, having many desir- dependency issues [25]. Containers are operating system able features like ease of deployment, developer friendliness, constructs for providing the lightweight virtualization. Dif- and lightweight virtualization. Meanwhile, storage systems ferent from full virtualization which needs to emulate an have witnessed tremendous performance boost through recent entire set of hardware components that it is configured with, innovations in the industry such as Non-Volatile Memory containers allow multiple user space instances to share the Express (NVMe) and NVMe Over Fabrics (NVMf) standards. same host OS while allowing for multiple applications to run However, the performance of docker containers on these high- in isolation, in parallel, on the same host machine. In this speed contemporary SSDs has not yet been investigated. In this way, containers can achieve near bare metal performance paper, we first present a characterization of the performance by avoiding the overheads in virtualizing entire systems. impact among a wide variety of the available storage options Although there are multiple implementations of the con- for deploying Docker containers and provide the configuration tainer technology [6], we choose Docker, which is the most options to best utilize the high performance SSDs. We then pro- popular implementation and is heavily used in production. vide the first of its kind characterization results of a Dockerized One of the key components for efficient execution of NoSQL database on an NVMe-over-fabrics prototype and show any container (or even virtual machine) is the storage hi- that its performance matches closely to that of direct attached erarchy. Containers rely heavily on the notion of an im- age. The container image holds the state of the container, storage. Finally, we provide experimental results on scaling including all the necessary application binaries, input files the performance of NVMf to multiple nodes and present the and configuration parameters to run an application within challenges and projections for future storage system design. the container. Efficient representation of the image on the underlying storage is critical for performance. The advent of 1. Introduction SSD-based storage provides new opportunities to improve the performance of a container. In particular, Non-volatile memory express (NVMe) [27] is a logical device inter- The last half-a-decade has witnessed a massive shift in face specification for accessing non-volatile storage media the way that software is developed and deployed. With the attached via PCI Express (PCIe) bus. Many latest server proliferation of data centers, a number of applications have platforms have already integrated NVMe interface support, moved to new hosting models, such as Software as a Service including Supermicro NVMe Platform, Dell PowerEdge (SaaS), Platform as a Service (PaaS) and Infrastructure as a R920 and NVIDIA DGX-1 [32], [34], [9]. With growing Service (IaaS) that forgo cumbersome software installations number of high performance server platforms equipped with on individual machines. This freedom has also led to the NVMe interface, NVMe SSDs are promising to play an development of micro-services and complex distributed ap- important role in data centers in the near future. NVMe- plications. Applications are broken down into smaller silos, over-fabrics (NVMf) is a new remote storage technique that interact with each other to compose an overall system which allows the high performance NVMe interface to be that can be deployed across many environments. These connected to RDMA-capable networks. Coupled with the environments can have different OS distributions, kernel new Ethernet and InfiniBand speeds which now top out at versions, compilers, shared library versions and other de- 100Gb/s, NVMf is promising to radically change storage pendencies that are required for program execution. Making over the network [13]. sure all environments have the right set of dependencies is As the world is shifting the bulk of its storage needs a tough challenge and is often known as the dependency on to high performance SSDs, it is essential to understand hell. This can offset the advantages of free mobility and the performance implications of all possible Docker usage distributed nature of applications over a large, monolithic scenarios and the related design space to fully utilize the code base. high performance storage. However, there have been very few studies on the performance tradeoffs of Docker on of magnitude higher internal bandwidth compared to hard storage systems, and none of them has covered the multiple drives. Historically, SSDs conformed to legacy interfaces, storage options exported by the Docker framework or their like SATA, SCSI and Serial Attached SCSI (SAS), and effect on NVMe SSDs. As far as we know, we are the first needed a slow clock on-board platform controller hub (PCH) paper presenting characterization results on NVMf. or Host Bus Adapter (HBA) to communicate with the host To that end, we make the following contributions: system (Figure 1(a)). Over time, those legacy interfaces have • We provide a comprehensive characterization of con- become a bandwidth bottleneck and limit the performance tainer storage drivers to evaluate all possible combina- of SSDs. The orders of magnitude higher internal bandwidth tions of persistent and non-persistent drivers for Docker capability has driven the transition from SATA to a scalable, ecosystem. high bandwidth and low-latency I/O interconnect, namely • We provide characterization results for an NVMe over PCI Express (PCIe) as shown in Figure 1(b). NVMe stan- fabrics implementation for various storage options and dardizes PCIe SSDs and was defined to address inefficiency show that Dockerized applications can achieve similar of legacy protocols, enable standard drivers and inter-vendor performance between local and remote storage for both interoperability. Experimental results show that an NVMe synthetic workloads and real world database. SSD is able to deliver up to 8.5x performance for running • We identify the critical resource bottlenecks for scal- Cassandra compared to a SATA SSD [37]. However, NVMe ing NoSQL databases and then optimize the resource drives are still underutilized, in terms of both bandwidth and allocation strategy for higher system throughput. IOPS, when running a single instance of Cassandra without considering scaling. Scaling in NoSQL databases can be The remainder of the paper is organized as follows. made easier with containerization. In order to deploy multi- Section 2 explains the benefit of using containers, NVMe ple, concurrent instances of NoSQL (or any other datacenter) and NVMf SSDs. Section 3 and Section 4 discuss a wide application, we just need to deploy multiple instances of the variety of the available storage options for deploying Docker containerized workload on the server. Scaling applications containers. Section 5 describes our evaluation methodology. to incorporate multiple instances of a workload on the same Then we present a deep-dive comparative analysis of differ- machine natively is harder since we have to address multiple ent storage options for local and remote storage. Section 6 issues like port conflicts and other networking issues etc. analysis the performance and scaling nature of Dockerized Also distributing resources between applications is made real-world NoSQL databases using the best storage option easier through cgroups, which also helps to scale (and is obtained from Section 5. We discuss possible system opti- much harder to do natively). The latter part of this work mizations in Section 7. Section 8 describes the related work will explore best strategies for deploying and scaling mul- and we conclude in Section 9. tiple workload instances on cloud hosts using both Docker containers and high performance SSDs. 2. Benefits of Containers, NVMe and NVMf Furthermore, commodity networking has become cheaper and delivers higher bandwidths and lower latencies, The performance of application could be dictated by the which has allowed for the rise of Non-Volatile Memory choice of virtualization technology. Virtual machine virtu- Express (NVMe) over Fabrics [13]. NVMe over Fabrics alizes every resource from the CPU to memory to storage shares the same base architecture and most of the code as the through a virtual machine manager called hypervisor. A hy- existing NVMe over PCIe implementation, but allows the pervisor is typically run on top of a host OS or sometimes on simple implementation of additional fabrics [19]. This end- top of the native, bare metal hardware. The virtual machine to-end NVMe semantics eliminates unnecessary protocol then runs on top of the hypervisor. Each guest VM will translations and retains NVMe efficiency and performance have its
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages12 Page
-
File Size-