Service isolation, achieved by deploying components of multi -tier applications using separate virtual machines (VMs), is a common 'best' practice. Various advantages cited include simpler deployment architectures, easier resource scalability for supporting dynamic application throughput requirements, and support for component-level fault tolerance . This paper presents results from an empirical study which investigates the performance implications of component placement for deployments of multi -tier applications to Infrastructure-as-a- Service (IaaS) clouds. Relationship s between performance and resource utilization (CPU, disk, network) are investigated to better understand the implications which result from how applications are deployed. All possible deployments for two variants of a multi -tier application were tested, one computationally bound by the model, the other bound by a geospatial database. The best performing deployments required as few as 2 VMs, half the number required for service isolation, demonstrating potential cost savings with service consolidation. Resource use (CPU time, disk I/O, and network I/O) varied based on component placement and VM memory allocation. Using separate VMs to host each application component resulted in performance overhead of ~1 -2%. Relationships between resource utilization an d performance were harnessed to build a multiple linear regression model to predict performance of component deployments. CPU time, disk sector reads, and disk sector writes are identified as the most powerful performance predictors for component deployments.
Available at: http://works.bepress.com/wes-lloyd/15/