Challenges with Applying Performance Testing Methods for Systems Deployed on Shared Environments with Indeterminate Competing Workloads: Position Paper

There is a tendency to move production environments from corporate-owned data centers to cloud-based services. Users who do not maintain a private production environment might not wish to maintain a private performance test environment either. The application of performance engineering methods to the development and delivery of software systems is complicated when the form and or parameters of the target deployment environment cannot be controlled or determined. The difficulty of diagnosing the causes of performance issues during testing or production may be increased by the presence of highly variable workloads on the target platform that compete with the application of interest for resources in ways that might be hard to determine. In particular, performance tests might be conducted in virtualized environments that introduce factors influencing customer-affecting metrics (such as transaction response time) and observed resource usage. Observed resource usage metrics in virtualized environments can have different meanings from those in a native environment. Virtual machines may suffer delays in execution. We explore factors that exacerbate these complications. We argue that these complexities reinforce the case for rigorously using software performance engineering methods rather than diminishing it. We also explore possible performance testing methods for mitigating the risk associated with these complexities.

[1]  Andr B. Bondi,et al.  Foundations of Software and System Performance Engineering: Process, Performance Modeling, Requirements, Testing, Scalability, and Practice , 2014 .

[2]  Roger Miller,et al.  Design of Experiments A Realistic Approach. , 1975 .

[3]  Anees Shaikh,et al.  Performance Isolation and Fairness for Multi-Tenant Cloud Storage , 2012, OSDI.

[4]  Leonard J. Bass,et al.  Risk Themes Discovered through Architecture Evaluations , 2007, 2007 Working IEEE/IFIP Conference on Software Architecture (WICSA'07).

[5]  Tim Kraska,et al.  An evaluation of alternative architectures for transaction processing in the cloud , 2010, SIGMOD Conference.

[6]  Steffen Becker,et al.  Beyond Simulation: Composing Scalability, Elasticity, and Efficiency Analyses from Preexisting Analysis Results , 2015, WOSP '15.

[7]  Elaine J. Weyuker,et al.  Ensuring stable performance for systems that degrade , 2005, WOSP '05.

[8]  John Murphy,et al.  Performance Engineering for Cloud Computing , 2011, EPEW.

[9]  Hisashi Kobayashi,et al.  Queuing Networks with Multiple Closed Chains: Theory and Computational Algorithms , 1975, IBM J. Res. Dev..

[10]  F. de P. Hanika,et al.  Introduction to Operating System Design , 1976 .

[11]  A. Nico Habermann,et al.  Introduction to Operation Systems Design , 1976 .

[12]  Andre B. Bondi Incorporating Software Performance Engineering Methods and Practices into the Software Development Life Cycle , 2016, ICPE.

[13]  Edward D. Lazowska,et al.  Quantitative System Performance , 1985, Int. CMG Conference.

[14]  Sebastian Lehrig,et al.  The CloudScale Method for Software Scalability, Elasticity, and Efficiency Engineering: a Tutorial , 2015, ICPE.

[15]  Edward D. Lazowska,et al.  Quantitative system performance - computer system analysis using queueing network models , 1983, Int. CMG Conference.