Cloud Elasticity
Total Page:16
File Type:pdf, Size:1020Kb
Quantifying the Impact of Platform Configuration Space for Elasticity Benchmarking Study Thesis Nikolas Roman Herbst At the Department of Informatics Institute for Program Structures and Data Organization (IPD), Informatics Innovation Center (IIC) Reviewer: Prof. Ralf Reussner Advisor: Dr.-Ing. Michael Kuperberg Second advisor: Dipl.-Inform. Nikolaus Huber Duration: April 14th, 2011 – August 31st, 2011 KIT – University of the State of Baden-Wuerttemberg and National Laboratory of the Helmholtz Association www.kit.edu iii Disclaimer The measurements and the results presented in this study thesis have been obtained using prototypic implementations of research ideas, deployed in a non-productive experimental environment. They are neither representative for the performance of IBM System z, nor can they be used for comparison or reference purposes. Neither IBM nor any other men- tioned hardware/software vendors have sanctioned or verified the information contained in these slides. Any reproduction, citation or discussion of the results contained herein must be accompanied by this disclaimer in complete and untranslated form. Usage of these results for marketing or commercial purposes is strictly prohibited. Declaration of Originality I declare that I have developed and written the enclosed Study Thesis completely by myself, and have not used sources or means that do not belong to my intellectual property without declaration in the text. Karlsruhe, 2011-08-26 Contents Abstract 1 1. Introduction 3 1.1. Context . .3 1.2. Contribution . .4 2. Scalability 7 2.1. Problem Description . .7 2.2. Definition of Scalability . .8 3. Elasticity 11 3.1. A Definition of Elasticity . 12 3.2. Elasticity Metrics . 13 3.3. Direct and Indirect Measuring of Elasticity Metrics . 13 3.4. Extraction of Provisioning Time using Dynamic Time Warping Algorithm (DTW) for Cause Effect Mapping . 17 3.5. Interpretation of Provisioning Time Values based on Extraction by DTW Algorithm . 19 3.6. A Single-valued Elasticity Metric? . 20 4. Elasticity Benchmark for Thread Pools 21 4.1. Variable Workload Generation . 21 4.2. Experiment Setup . 21 4.3. Extraction of Elasticity Metrics . 24 4.4. Experiments and Platforms . 26 4.5. Results and Elasticity Metric Illustrations . 27 4.5.1. Experiment 1 - Platform 1 . 27 4.5.2. Experiment 3 - Platform 1 . 32 4.5.3. Experiment 5 - Platform 1 . 37 4.6. Observations and Experiment Result Discussion . 42 5. Elasticity Benchmark for Scaling Up of z/VM Virtual Machines 45 5.1. Experiment Setup . 46 5.2. Workload Generation . 47 5.3. Results . 47 6. Future Work 49 6.1. Scale Up Experiment using CPU Cores as Resource . 49 6.2. Elasticity Benchmark for Scaling out the Number of z/VM Virtual Machines Instances in a Performance Group . 49 7. Conclusion 51 vi Contents 8. Acknowledgement 53 Bibliography 54 Appendix 57 A. Experiment 2 and 4 on Platform 1 . 57 A.1. Experiment 2 - Platform 1 . 57 A.2. Experiment 4 - Platform 1 . 61 B. Experiments 1-5 on Platform 2 . 65 B.1. Experiment 1 - Platform 2 . 65 B.2. Experiment 2 - Platform 2 . 69 B.3. Experiment 3 - Platform 2 . 73 B.4. Experiment 4 - Platform 2 . 77 B.5. Experiment 5 - Platform 2 . 81 Abstract Elasticity is the ability of a software system to dynamically adapt the amount of the resources it provides to clients as their workloads increase or decrease. In the context of cloud computing, automated resizing of a virtual machine's resources can be considered as a key step towards optimisation of a system's cost and energy efficiency. Existing work on cloud computing is limited to the technical view of implementing elastic systems, and definitions of scalability have not been extended to cover elasticity. This study thesis presents a detailed discussion of elasticity, proposes metrics as well as measurement techniques, and outlines next steps for enabling comparisons between cloud computing offerings on the basis of elasticity. I discuss results of our work on measuring elasticity of thread pools provided by the Java virtual machine, as well as an experiment setup for elastic CPU time slice resizing in a virtualized environment. An experiment setup is presented as future work for dynamically adding and removing z/VM Linux virtual machine instances to a performance relevant group of virtualized servers. 1. Introduction The technical report Defining and Quantifying Elasticity of Resources in Cloud Computing and Scalable Platforms [1] was an early result of the research work in our team consisting of J´oakim von Kistowski, Michael Kuperberg and myself as authors. Some contents and figures that have already been published in this technical report are reused in sections 1-4 of this study thesis. 1.1. Context In Cloud computing [2, 3], resources and services are made available over a network, with the physical location, size and implementation of resources and services being trans- parent. With its focus on flexibility, dynamic demands and consumption-based billing, cloud computing enables on-demand infrastructure provisioning and \as-a-service" offering of applications and execution platforms. Cloud computing is powered by virtualization, which enables an execution platform to provide several concurrently usable (and independent) instances of virtual execution plat- forms, often called virtual machines (VMs). Virtualization itself is a decades-old technique [2, 4], and it has matured over many gener- ations of hardware and software, e.g. on IBM System z mainframes [5, 6]. Virtualization comes in many types and shapes: hardware virtualization (e.g. PR/SM), OS virtualiza- tion (e.g. Xen, VMware ESX), middleware virtualization (e.g. JVM) and many more. Virtualization is a technique which has become very popular in industry and academia, leading to a large number of new products, business models and publications. Mature cloud computing platforms promise to approximate performance isolation: a strug- gling VM with saturated resources (e.g. 100% CPU load) should only minimally affect the performance of VMs on the same native execution platform. To implement this be- haviour, a virtual execution platform can make use of a predefined maximum allowed share of the native platform's resources. Some platforms even provide facilities for run time adaptation of these shares, and Cloud computing platforms which feature run time and/or demand-driven adaptation of provided resources are often called elastic. Platform Elasticity is the feature of automated, dynamic, flexible and frequent resizing of resources that are provided to an application by the execution platform. Elasticity can be considered as a key benefit of the cloud computing. Elasticity carries the potential for 4 1. Introduction optimizing system productivity and utilization, while maintaining service level agreements (SLAs) and quality of service (QoS) as well as saving energy and costs. While the space of choices between cloud computing providers for each domain (public, private and hybrid clouds) is getting wider, the means for comparing their features and service qualities are not yet finally developed. Several security issues for virtualised sys- tems running on the same physical hardware cannot be answered completely, as well as guaranteeing performance independence of so called \noisy neighbours". Scalability metrics have already been proposed by M. Woodside et al. in 2000 [7] by evalu- ating a systems productivity at different levels of scale. For considerations on how \elastic" a system is, these proposed metrics are insufficient because of not taking the temporal as- pect of automated scaling actions into account. The viewpoint of dynamic scalability demands further observation and metrics on how often, how fast and how significantly scaling of a system can be executed. The actuality and relevance of researching this topic can be confirmed by the Gartner study \Five refining Attributes of Public an Private Cloud Computing" from May 2009 [8], where elasticity of virtual resources is stated as one central highlight of the modern cloud computing technology. The term \elasticity" itself is already often used in advertising of cloud infrastructure providers. Amazon even names their infrastructure \Elastic Compute Cloud - EC2". As an example for automated resizing actions, Amazon offers a automated scaling API for their EC2 clients, which is described in detail at [9]. The client can control the number of virtual machine instances via policies, which observe the average CPU usage in an scaling group of virtual machine instances. The high utility of these features is demonstrated in a number of use cases within this manual. Anyhow, Amazon has not published yet any figures on how fast scaling actions are executed. The scaling automatism is restricted to only control the number of VMs in a group by observing CPU usage. Perhaps a higher granularity of automated programmable scaling actions could be useful to the Amazon cloud clients, like resizing a VM's virtual resources at run time. 1.2. Contribution In this study thesis I outline the basic idea of elasticity in the context of cloud computing. I discuss the term of scalability as the enabling feature of a system for elastic behaviour. Furthermore, I explain several key metrics, that characterize resource elasticity, and discuss possible ways towards direct and indirect measurements of these elasticity metrics. An appropriate definition for resource elasticity in the context of cloud computing could not yet be found in research literature, for example in [10, 11, 7, 12]. A clear definition of resource elasticity is provided within this study thesis, as well as an detailed outline of key metrics characterizing elastic behaviour of a system. The basic concepts of resource elasticity metrics are transferable to other (also non-IT) contexts, where changing resource demands are supposed to fit to provided resources. As validation for the concept of elasticity metrics, the following three experiments, that are based on different elastic resource pools, are presented in detail, followed by an in- terpretation of the conducted measurement's results. Configuration parameters will be highlighted that influence the elasticity behaviour directly.