Loading…
Using black-box performance models to detect performance regressions under varying workloads: an empirical study
Performance regressions of large-scale software systems often lead to both financial and reputational losses. In order to detect performance regressions, performance tests are typically conducted in an in-house (non-production) environment using test suites with predefined workloads. Then, performan...
Saved in:
Published in: | Empirical software engineering : an international journal 2020-09, Vol.25 (5), p.4130-4160 |
---|---|
Main Authors: | , , , , , , , , |
Format: | Article |
Language: | English |
Subjects: | |
Citations: | Items that this one cites Items that cite this one |
Online Access: | Get full text |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
cited_by | cdi_FETCH-LOGICAL-c372t-e7b421b36624182151176af76d37684dab91873d69dda5f4c81c6a9672f73953 |
---|---|
cites | cdi_FETCH-LOGICAL-c372t-e7b421b36624182151176af76d37684dab91873d69dda5f4c81c6a9672f73953 |
container_end_page | 4160 |
container_issue | 5 |
container_start_page | 4130 |
container_title | Empirical software engineering : an international journal |
container_volume | 25 |
creator | Liao, Lizhi Chen, Jinfu Li, Heng Zeng, Yi Shang, Weiyi Guo, Jianmei Sporea, Catalin Toma, Andrei Sajedi, Sarah |
description | Performance regressions of large-scale software systems often lead to both financial and reputational losses. In order to detect performance regressions, performance tests are typically conducted in an in-house (non-production) environment using test suites with predefined workloads. Then, performance analysis is performed to check whether a software version has a performance regression against an earlier version. However, the real workloads in the field are constantly changing, making it unrealistic to resemble the field workloads in predefined test suites. More importantly, performance testing is usually very expensive as it requires extensive resources and lasts for an extended period. In this work, we leverage black-box machine learning models to automatically detect performance regressions in the field operations of large-scale software systems. Practitioners can leverage our approaches to complement or replace resource-demanding performance tests that may not even be realistic in a fast-paced environment. Our approaches use black-box models to capture the relationship between the performance of a software system (e.g., CPU usage) under varying workloads and the runtime activities that are recorded in the readily-available logs. Then, our approaches compare the black-box models derived from the current software version with an earlier version to detect performance regressions between these two versions. We performed empirical experiments on two open-source systems and applied our approaches on a large-scale industrial system. Our results show that such black-box models can effectively and timely detect real performance regressions and injected ones under varying workloads that are unseen when training these models. Our approaches have been adopted in practice to detect performance regressions of a large-scale industry system on a daily basis. |
doi_str_mv | 10.1007/s10664-020-09866-z |
format | article |
fullrecord | <record><control><sourceid>proquest_cross</sourceid><recordid>TN_cdi_proquest_journals_2439756152</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>2439756152</sourcerecordid><originalsourceid>FETCH-LOGICAL-c372t-e7b421b36624182151176af76d37684dab91873d69dda5f4c81c6a9672f73953</originalsourceid><addsrcrecordid>eNp9kEtPwzAQhC0EEqXwBzhZ4mzwI1kn3FDFS6rEpZwtx3aqtEkc7ARofz0pQUJcOO1KOzOr-RC6ZPSaUSpvIqMACaGcEppnAGR_hGYslYJIYHA87iLjRPAUTtFZjBtKaS6TdIa611i1a1zU2mxJ4T9x50LpQ6Nb43Djrasj7j22rnem_3MMbh1cjJVvIx5a6wJ-12F3CPvwYVt7beMt1i12TVeFyugax36wu3N0Uuo6uoufOUerh_vV4oksXx6fF3dLYoTkPXGySDgrBABPWMZZypgEXUqwQkKWWF3kLJPCQm6tTsvEZMyAzkHyUoo8FXN0NcV2wb8NLvZq44fQjh8VT0QuU2ApH1V8UpngYwyuVF2omrGGYlQdwKoJrBrBqm-waj-axGSKo7hdu_Ab_Y_rCzdRfYE</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>2439756152</pqid></control><display><type>article</type><title>Using black-box performance models to detect performance regressions under varying workloads: an empirical study</title><source>Springer Nature</source><creator>Liao, Lizhi ; Chen, Jinfu ; Li, Heng ; Zeng, Yi ; Shang, Weiyi ; Guo, Jianmei ; Sporea, Catalin ; Toma, Andrei ; Sajedi, Sarah</creator><creatorcontrib>Liao, Lizhi ; Chen, Jinfu ; Li, Heng ; Zeng, Yi ; Shang, Weiyi ; Guo, Jianmei ; Sporea, Catalin ; Toma, Andrei ; Sajedi, Sarah</creatorcontrib><description>Performance regressions of large-scale software systems often lead to both financial and reputational losses. In order to detect performance regressions, performance tests are typically conducted in an in-house (non-production) environment using test suites with predefined workloads. Then, performance analysis is performed to check whether a software version has a performance regression against an earlier version. However, the real workloads in the field are constantly changing, making it unrealistic to resemble the field workloads in predefined test suites. More importantly, performance testing is usually very expensive as it requires extensive resources and lasts for an extended period. In this work, we leverage black-box machine learning models to automatically detect performance regressions in the field operations of large-scale software systems. Practitioners can leverage our approaches to complement or replace resource-demanding performance tests that may not even be realistic in a fast-paced environment. Our approaches use black-box models to capture the relationship between the performance of a software system (e.g., CPU usage) under varying workloads and the runtime activities that are recorded in the readily-available logs. Then, our approaches compare the black-box models derived from the current software version with an earlier version to detect performance regressions between these two versions. We performed empirical experiments on two open-source systems and applied our approaches on a large-scale industrial system. Our results show that such black-box models can effectively and timely detect real performance regressions and injected ones under varying workloads that are unseen when training these models. Our approaches have been adopted in practice to detect performance regressions of a large-scale industry system on a daily basis.</description><identifier>ISSN: 1382-3256</identifier><identifier>EISSN: 1573-7616</identifier><identifier>DOI: 10.1007/s10664-020-09866-z</identifier><language>eng</language><publisher>New York: Springer US</publisher><subject>Compilers ; Computer Science ; Empirical analysis ; Interpreters ; Machine learning ; Performance tests ; Programming Languages ; Recommendation Systems for Software Engineering ; Regression analysis ; Software ; Software Engineering/Programming and Operating Systems ; Source code ; Workload ; Workloads</subject><ispartof>Empirical software engineering : an international journal, 2020-09, Vol.25 (5), p.4130-4160</ispartof><rights>Springer Science+Business Media, LLC, part of Springer Nature 2020</rights><rights>Springer Science+Business Media, LLC, part of Springer Nature 2020.</rights><lds50>peer_reviewed</lds50><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c372t-e7b421b36624182151176af76d37684dab91873d69dda5f4c81c6a9672f73953</citedby><cites>FETCH-LOGICAL-c372t-e7b421b36624182151176af76d37684dab91873d69dda5f4c81c6a9672f73953</cites><orcidid>0000-0001-9920-5855</orcidid></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>314,780,784,27924,27925</link.rule.ids></links><search><creatorcontrib>Liao, Lizhi</creatorcontrib><creatorcontrib>Chen, Jinfu</creatorcontrib><creatorcontrib>Li, Heng</creatorcontrib><creatorcontrib>Zeng, Yi</creatorcontrib><creatorcontrib>Shang, Weiyi</creatorcontrib><creatorcontrib>Guo, Jianmei</creatorcontrib><creatorcontrib>Sporea, Catalin</creatorcontrib><creatorcontrib>Toma, Andrei</creatorcontrib><creatorcontrib>Sajedi, Sarah</creatorcontrib><title>Using black-box performance models to detect performance regressions under varying workloads: an empirical study</title><title>Empirical software engineering : an international journal</title><addtitle>Empir Software Eng</addtitle><description>Performance regressions of large-scale software systems often lead to both financial and reputational losses. In order to detect performance regressions, performance tests are typically conducted in an in-house (non-production) environment using test suites with predefined workloads. Then, performance analysis is performed to check whether a software version has a performance regression against an earlier version. However, the real workloads in the field are constantly changing, making it unrealistic to resemble the field workloads in predefined test suites. More importantly, performance testing is usually very expensive as it requires extensive resources and lasts for an extended period. In this work, we leverage black-box machine learning models to automatically detect performance regressions in the field operations of large-scale software systems. Practitioners can leverage our approaches to complement or replace resource-demanding performance tests that may not even be realistic in a fast-paced environment. Our approaches use black-box models to capture the relationship between the performance of a software system (e.g., CPU usage) under varying workloads and the runtime activities that are recorded in the readily-available logs. Then, our approaches compare the black-box models derived from the current software version with an earlier version to detect performance regressions between these two versions. We performed empirical experiments on two open-source systems and applied our approaches on a large-scale industrial system. Our results show that such black-box models can effectively and timely detect real performance regressions and injected ones under varying workloads that are unseen when training these models. Our approaches have been adopted in practice to detect performance regressions of a large-scale industry system on a daily basis.</description><subject>Compilers</subject><subject>Computer Science</subject><subject>Empirical analysis</subject><subject>Interpreters</subject><subject>Machine learning</subject><subject>Performance tests</subject><subject>Programming Languages</subject><subject>Recommendation Systems for Software Engineering</subject><subject>Regression analysis</subject><subject>Software</subject><subject>Software Engineering/Programming and Operating Systems</subject><subject>Source code</subject><subject>Workload</subject><subject>Workloads</subject><issn>1382-3256</issn><issn>1573-7616</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2020</creationdate><recordtype>article</recordtype><recordid>eNp9kEtPwzAQhC0EEqXwBzhZ4mzwI1kn3FDFS6rEpZwtx3aqtEkc7ARofz0pQUJcOO1KOzOr-RC6ZPSaUSpvIqMACaGcEppnAGR_hGYslYJIYHA87iLjRPAUTtFZjBtKaS6TdIa611i1a1zU2mxJ4T9x50LpQ6Nb43Djrasj7j22rnem_3MMbh1cjJVvIx5a6wJ-12F3CPvwYVt7beMt1i12TVeFyugax36wu3N0Uuo6uoufOUerh_vV4oksXx6fF3dLYoTkPXGySDgrBABPWMZZypgEXUqwQkKWWF3kLJPCQm6tTsvEZMyAzkHyUoo8FXN0NcV2wb8NLvZq44fQjh8VT0QuU2ApH1V8UpngYwyuVF2omrGGYlQdwKoJrBrBqm-waj-axGSKo7hdu_Ab_Y_rCzdRfYE</recordid><startdate>20200901</startdate><enddate>20200901</enddate><creator>Liao, Lizhi</creator><creator>Chen, Jinfu</creator><creator>Li, Heng</creator><creator>Zeng, Yi</creator><creator>Shang, Weiyi</creator><creator>Guo, Jianmei</creator><creator>Sporea, Catalin</creator><creator>Toma, Andrei</creator><creator>Sajedi, Sarah</creator><general>Springer US</general><general>Springer Nature B.V</general><scope>AAYXX</scope><scope>CITATION</scope><scope>7SC</scope><scope>8FD</scope><scope>8FE</scope><scope>8FG</scope><scope>ABJCF</scope><scope>AFKRA</scope><scope>ARAPS</scope><scope>BENPR</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>HCIFZ</scope><scope>JQ2</scope><scope>L6V</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope><scope>M7S</scope><scope>P5Z</scope><scope>P62</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PRINS</scope><scope>PTHSS</scope><scope>S0W</scope><orcidid>https://orcid.org/0000-0001-9920-5855</orcidid></search><sort><creationdate>20200901</creationdate><title>Using black-box performance models to detect performance regressions under varying workloads: an empirical study</title><author>Liao, Lizhi ; Chen, Jinfu ; Li, Heng ; Zeng, Yi ; Shang, Weiyi ; Guo, Jianmei ; Sporea, Catalin ; Toma, Andrei ; Sajedi, Sarah</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c372t-e7b421b36624182151176af76d37684dab91873d69dda5f4c81c6a9672f73953</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2020</creationdate><topic>Compilers</topic><topic>Computer Science</topic><topic>Empirical analysis</topic><topic>Interpreters</topic><topic>Machine learning</topic><topic>Performance tests</topic><topic>Programming Languages</topic><topic>Recommendation Systems for Software Engineering</topic><topic>Regression analysis</topic><topic>Software</topic><topic>Software Engineering/Programming and Operating Systems</topic><topic>Source code</topic><topic>Workload</topic><topic>Workloads</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Liao, Lizhi</creatorcontrib><creatorcontrib>Chen, Jinfu</creatorcontrib><creatorcontrib>Li, Heng</creatorcontrib><creatorcontrib>Zeng, Yi</creatorcontrib><creatorcontrib>Shang, Weiyi</creatorcontrib><creatorcontrib>Guo, Jianmei</creatorcontrib><creatorcontrib>Sporea, Catalin</creatorcontrib><creatorcontrib>Toma, Andrei</creatorcontrib><creatorcontrib>Sajedi, Sarah</creatorcontrib><collection>CrossRef</collection><collection>Computer and Information Systems Abstracts</collection><collection>Technology Research Database</collection><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>Materials Science & Engineering Collection</collection><collection>ProQuest Central</collection><collection>Advanced Technologies & Aerospace Collection</collection><collection>ProQuest Central</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central</collection><collection>SciTech Premium Collection</collection><collection>ProQuest Computer Science Collection</collection><collection>ProQuest Engineering Collection</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts – Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><collection>Engineering Database</collection><collection>ProQuest advanced technologies & aerospace journals</collection><collection>ProQuest Advanced Technologies & Aerospace Collection</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>ProQuest Central China</collection><collection>Engineering collection</collection><collection>DELNET Engineering & Technology Collection</collection><jtitle>Empirical software engineering : an international journal</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Liao, Lizhi</au><au>Chen, Jinfu</au><au>Li, Heng</au><au>Zeng, Yi</au><au>Shang, Weiyi</au><au>Guo, Jianmei</au><au>Sporea, Catalin</au><au>Toma, Andrei</au><au>Sajedi, Sarah</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Using black-box performance models to detect performance regressions under varying workloads: an empirical study</atitle><jtitle>Empirical software engineering : an international journal</jtitle><stitle>Empir Software Eng</stitle><date>2020-09-01</date><risdate>2020</risdate><volume>25</volume><issue>5</issue><spage>4130</spage><epage>4160</epage><pages>4130-4160</pages><issn>1382-3256</issn><eissn>1573-7616</eissn><abstract>Performance regressions of large-scale software systems often lead to both financial and reputational losses. In order to detect performance regressions, performance tests are typically conducted in an in-house (non-production) environment using test suites with predefined workloads. Then, performance analysis is performed to check whether a software version has a performance regression against an earlier version. However, the real workloads in the field are constantly changing, making it unrealistic to resemble the field workloads in predefined test suites. More importantly, performance testing is usually very expensive as it requires extensive resources and lasts for an extended period. In this work, we leverage black-box machine learning models to automatically detect performance regressions in the field operations of large-scale software systems. Practitioners can leverage our approaches to complement or replace resource-demanding performance tests that may not even be realistic in a fast-paced environment. Our approaches use black-box models to capture the relationship between the performance of a software system (e.g., CPU usage) under varying workloads and the runtime activities that are recorded in the readily-available logs. Then, our approaches compare the black-box models derived from the current software version with an earlier version to detect performance regressions between these two versions. We performed empirical experiments on two open-source systems and applied our approaches on a large-scale industrial system. Our results show that such black-box models can effectively and timely detect real performance regressions and injected ones under varying workloads that are unseen when training these models. Our approaches have been adopted in practice to detect performance regressions of a large-scale industry system on a daily basis.</abstract><cop>New York</cop><pub>Springer US</pub><doi>10.1007/s10664-020-09866-z</doi><tpages>31</tpages><orcidid>https://orcid.org/0000-0001-9920-5855</orcidid></addata></record> |
fulltext | fulltext |
identifier | ISSN: 1382-3256 |
ispartof | Empirical software engineering : an international journal, 2020-09, Vol.25 (5), p.4130-4160 |
issn | 1382-3256 1573-7616 |
language | eng |
recordid | cdi_proquest_journals_2439756152 |
source | Springer Nature |
subjects | Compilers Computer Science Empirical analysis Interpreters Machine learning Performance tests Programming Languages Recommendation Systems for Software Engineering Regression analysis Software Software Engineering/Programming and Operating Systems Source code Workload Workloads |
title | Using black-box performance models to detect performance regressions under varying workloads: an empirical study |
url | http://sfxeu10.hosted.exlibrisgroup.com/loughborough?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2024-12-28T15%3A43%3A09IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_cross&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Using%20black-box%20performance%20models%20to%20detect%20performance%20regressions%20under%20varying%20workloads:%20an%20empirical%20study&rft.jtitle=Empirical%20software%20engineering%20:%20an%20international%20journal&rft.au=Liao,%20Lizhi&rft.date=2020-09-01&rft.volume=25&rft.issue=5&rft.spage=4130&rft.epage=4160&rft.pages=4130-4160&rft.issn=1382-3256&rft.eissn=1573-7616&rft_id=info:doi/10.1007/s10664-020-09866-z&rft_dat=%3Cproquest_cross%3E2439756152%3C/proquest_cross%3E%3Cgrp_id%3Ecdi_FETCH-LOGICAL-c372t-e7b421b36624182151176af76d37684dab91873d69dda5f4c81c6a9672f73953%3C/grp_id%3E%3Coa%3E%3C/oa%3E%3Curl%3E%3C/url%3E&rft_id=info:oai/&rft_pqid=2439756152&rft_id=info:pmid/&rfr_iscdi=true |