Studying the Effectiveness of Application Performance Management (APM) Tools for Detecting Performance Regressions for Web Applications: An Experience Report
Tarek M. Ahmed, C. Bezemer, T. Chen, A. Hassan, Weiyi Shang
{"title":"Studying the Effectiveness of Application Performance Management (APM) Tools for Detecting Performance Regressions for Web Applications: An Experience Report","authors":"Tarek M. Ahmed, C. Bezemer, T. Chen, A. Hassan, Weiyi Shang","doi":"10.1145/2901739.2901774","DOIUrl":null,"url":null,"abstract":"Performance regressions, such as a higher CPU utilization than in the previous version of an application, are caused by software application updates that negatively affect the performance of an application.Although a plethora of mining software repository research has been done to detect such regressions, research tools are generally not readily available to practitioners. Application Performance Management (APM) tools are commonly used in practice for detecting performance issues in the field by mining operational data.In contrast to performance regression detection tools that assume a changing code base and a stable workload, APM tools mine operational data to detect performance anomalies caused by a changing workload in an otherwise stable code base.Although APM tools are widely used in practice, no research has been done to understand 1) whether APM tools can identify performance regressions caused by code changes and 2) how well these APM tools support diagnosing the root-cause of these regressions.In this paper, we explore if the readily accessible APM tools can help practitioners detect performance regressions. We perform a case study using three commercial (AppDynamics, New Relic and Dynatrace) and one open source (Pinpoint) APM tools. In particular, we examine the effectiveness of leveraging these APM tools in detecting and diagnosing injected performance regressions (excessive memory usage, high CPU utilization and inefficient database queries) in three open source applications. We find that APM tools can detect most of the injected performance regressions, making them good candidates to detect performance regressions in practice. However, there is a gap between mining approaches that are proposed in state-of-the-art performance regression detection research and the ones used by APM tools. In addition, APM tools lack the ability to be extended, which makes it hard to enhance them when exploring novel mining approaches for detecting performance regressions.","PeriodicalId":6621,"journal":{"name":"2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR)","volume":"PC-24 1","pages":"1-12"},"PeriodicalIF":0.0000,"publicationDate":"2016-05-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"51","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2901739.2901774","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 51
Abstract
Performance regressions, such as a higher CPU utilization than in the previous version of an application, are caused by software application updates that negatively affect the performance of an application.Although a plethora of mining software repository research has been done to detect such regressions, research tools are generally not readily available to practitioners. Application Performance Management (APM) tools are commonly used in practice for detecting performance issues in the field by mining operational data.In contrast to performance regression detection tools that assume a changing code base and a stable workload, APM tools mine operational data to detect performance anomalies caused by a changing workload in an otherwise stable code base.Although APM tools are widely used in practice, no research has been done to understand 1) whether APM tools can identify performance regressions caused by code changes and 2) how well these APM tools support diagnosing the root-cause of these regressions.In this paper, we explore if the readily accessible APM tools can help practitioners detect performance regressions. We perform a case study using three commercial (AppDynamics, New Relic and Dynatrace) and one open source (Pinpoint) APM tools. In particular, we examine the effectiveness of leveraging these APM tools in detecting and diagnosing injected performance regressions (excessive memory usage, high CPU utilization and inefficient database queries) in three open source applications. We find that APM tools can detect most of the injected performance regressions, making them good candidates to detect performance regressions in practice. However, there is a gap between mining approaches that are proposed in state-of-the-art performance regression detection research and the ones used by APM tools. In addition, APM tools lack the ability to be extended, which makes it hard to enhance them when exploring novel mining approaches for detecting performance regressions.
由于软件应用程序更新会对应用程序的性能产生负面影响,导致性能下降,例如比以前版本的应用程序的CPU利用率更高。尽管已经做了大量的挖掘软件存储库研究来检测这种回归,但研究工具通常不容易为从业者所用。应用程序性能管理(APM)工具在实践中通常用于通过挖掘操作数据来检测现场的性能问题。与假设不断变化的代码库和稳定的工作负载的性能回归检测工具不同,APM工具挖掘操作数据来检测由稳定的代码库中不断变化的工作负载引起的性能异常。尽管APM工具在实践中被广泛使用,但还没有研究来了解1)APM工具是否可以识别由代码更改引起的性能退化,以及2)这些APM工具在诊断这些退化的根本原因方面有多好。在本文中,我们将探讨易于访问的APM工具是否可以帮助从业者检测性能回归。我们使用三个商业APM工具(AppDynamics, New Relic和Dynatrace)和一个开源APM工具(Pinpoint)进行案例研究。我们特别研究了在三个开源应用程序中利用这些APM工具检测和诊断注入的性能退化(内存使用过多、CPU利用率高和数据库查询效率低下)的有效性。我们发现APM工具可以检测到大多数注入的性能回归,使其成为实践中检测性能回归的良好候选者。然而,在最先进的性能回归检测研究中提出的挖掘方法与APM工具使用的方法之间存在差距。此外,APM工具缺乏扩展能力,这使得在探索用于检测性能回归的新挖掘方法时难以对其进行增强。