Performance implications of multi-tier application deployments on Infrastructure-as-a-Service clouds: Towards performance modeling

  • Authors:
  • W. Lloyd;S. Pallickara;O. David;J. Lyon;M. Arabi;K. Rojas

  • Affiliations:
  • Department of Computer Science, Colorado State University, Fort Collins, CO 80523, USA and Department of Civil and Environmental Engineering, Colorado State University, Fort Collins, CO 80523, USA;Department of Computer Science, Colorado State University, Fort Collins, CO 80523, USA;Department of Computer Science, Colorado State University, Fort Collins, CO 80523, USA and Department of Civil and Environmental Engineering, Colorado State University, Fort Collins, CO 80523, USA;Department of Civil and Environmental Engineering, Colorado State University, Fort Collins, CO 80523, USA;Department of Civil and Environmental Engineering, Colorado State University, Fort Collins, CO 80523, USA;USDA-NRCS, 2150 Center Ave., Bldg. A, Fort Collins, CO 80526, USA

  • Venue:
  • Future Generation Computer Systems
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

Hosting a multi-tier application using an Infrastructure-as-a-Service (IaaS) cloud requires deploying components of the application stack across virtual machines (VMs) to provide the application's infrastructure while considering factors such as scalability, fault tolerance, performance and deployment costs (# of VMs). This paper presents results from an empirical study which investigates implications for application performance and resource requirements (CPU, disk and network) resulting from how multi-tier applications are deployed to IaaS clouds. We investigate the implications of: (1) component placement across VMs, (2) VM memory size, (3) VM hypervisor type (KVM vs. Xen), and (4) VM placement across physical hosts (provisioning variation). All possible deployment configurations for two multi-tier application variants are tested. One application variant was computationally bound by the application middleware, the other bound by geospatial queries. The best performing deployments required as few as 2 VMs, half the number required for VM-level service isolation, demonstrating potential cost savings when components can be consolidated. Resource utilization (CPU time, disk I/O, and network I/O) varied with component deployment location, VM memory allocation, and the hypervisor used (Xen or KVM) demonstrating how application deployment decisions impact required resources. Isolating application components using separate VMs produced performance overhead of ~1%-2%. Provisioning variation of VMs across physical hosts produced overhead up to 3%. Relationships between resource utilization and performance were assessed using multiple linear regression to develop a model to predict application deployment performance. Our model explained over 84% of the variance and predicted application performance with mean absolute error of only ~0.3 s with CPU time, disk sector reads, and disk sector writes serving as the most powerful predictors of application performance.