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...

Full description

Saved in:
Bibliographic Details
Published in:Empirical software engineering : an international journal 2020-09, Vol.25 (5), p.4130-4160
Main Authors: Liao, Lizhi, Chen, Jinfu, Li, Heng, Zeng, Yi, Shang, Weiyi, Guo, Jianmei, Sporea, Catalin, Toma, Andrei, Sajedi, Sarah
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 &amp; Engineering Collection</collection><collection>ProQuest Central</collection><collection>Advanced Technologies &amp; 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 &amp; aerospace journals</collection><collection>ProQuest Advanced Technologies &amp; 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 &amp; 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