Detecting Performance Bottlenecks Guided by Resource Usage

Detecting performance bottlenecks is critical to fix software performance issues. A great part of performance bottlenecks are related to resource usages, which can be affected by configurations. To detect configuration-related performance bottlenecks, the existing works either use learning methods t...

Full description

Bibliographic Details
Main Authors: Shanshan Li, Zhouyang Jia, Yunfeng Li, Xiangke Liao, Erci Xu, Xiaodong Liu, Haochen He, Long Gao
Format: Article
Language:English
Published: IEEE 2019-01-01
Series:IEEE Access
Subjects:
Online Access:https://ieeexplore.ieee.org/document/8808844/
_version_ 1818557859963600896
author Shanshan Li
Zhouyang Jia
Yunfeng Li
Xiangke Liao
Erci Xu
Xiaodong Liu
Haochen He
Long Gao
author_facet Shanshan Li
Zhouyang Jia
Yunfeng Li
Xiangke Liao
Erci Xu
Xiaodong Liu
Haochen He
Long Gao
author_sort Shanshan Li
collection DOAJ
description Detecting performance bottlenecks is critical to fix software performance issues. A great part of performance bottlenecks are related to resource usages, which can be affected by configurations. To detect configuration-related performance bottlenecks, the existing works either use learning methods to model the relationships between performance and configurations, or use profiling methods to monitor the execution time. The learning methods are time-consuming when analyzing software with large amounts of configurations, while the profiling methods can incur excessive overheads. In this paper, we conduct empirical studies on configurations, performance and resources. We find that 1) 49% performance issues can be improved or fixed by configurations; 2) 71% configurations affect the performance by tuning resource usage in a simple way; and 3) four types of resources contribute the main causes of performance issues. Inspired by these findings, we design PBHunter, a resource-guided instrumentation tool to detect configuration-related performance bottlenecks. PBHunter ranks configurations by resource usage and selects the ones that heavily affect resource usages. Guided by selected configurations, PBHunter applies the code instrumentation technique in resource-related code snippets. The evaluation shows PBHunter can effectively (36/50) expose the culprits of performance issues with minor overheads (5.1% on average).
first_indexed 2024-12-14T00:05:13Z
format Article
id doaj.art-f28f4e3587e74b74838138db1f38bc7b
institution Directory Open Access Journal
issn 2169-3536
language English
last_indexed 2024-12-14T00:05:13Z
publishDate 2019-01-01
publisher IEEE
record_format Article
series IEEE Access
spelling doaj.art-f28f4e3587e74b74838138db1f38bc7b2022-12-21T23:26:05ZengIEEEIEEE Access2169-35362019-01-01711783911784910.1109/ACCESS.2019.29365998808844Detecting Performance Bottlenecks Guided by Resource UsageShanshan Li0Zhouyang Jia1https://orcid.org/0000-0002-2533-4547Yunfeng Li2Xiangke Liao3Erci Xu4Xiaodong Liu5Haochen He6Long Gao7College of Computer Science, National University of Defense Technology, Changsha, ChinaCollege of Computer Science, National University of Defense Technology, Changsha, ChinaCollege of Computer Science, National University of Defense Technology, Changsha, ChinaCollege of Computer Science, National University of Defense Technology, Changsha, ChinaCollege of Computer Science, National University of Defense Technology, Changsha, ChinaCollege of Computer Science, National University of Defense Technology, Changsha, ChinaCollege of Computer Science, National University of Defense Technology, Changsha, ChinaCollege of Computer Science, National University of Defense Technology, Changsha, ChinaDetecting performance bottlenecks is critical to fix software performance issues. A great part of performance bottlenecks are related to resource usages, which can be affected by configurations. To detect configuration-related performance bottlenecks, the existing works either use learning methods to model the relationships between performance and configurations, or use profiling methods to monitor the execution time. The learning methods are time-consuming when analyzing software with large amounts of configurations, while the profiling methods can incur excessive overheads. In this paper, we conduct empirical studies on configurations, performance and resources. We find that 1) 49% performance issues can be improved or fixed by configurations; 2) 71% configurations affect the performance by tuning resource usage in a simple way; and 3) four types of resources contribute the main causes of performance issues. Inspired by these findings, we design PBHunter, a resource-guided instrumentation tool to detect configuration-related performance bottlenecks. PBHunter ranks configurations by resource usage and selects the ones that heavily affect resource usages. Guided by selected configurations, PBHunter applies the code instrumentation technique in resource-related code snippets. The evaluation shows PBHunter can effectively (36/50) expose the culprits of performance issues with minor overheads (5.1% on average).https://ieeexplore.ieee.org/document/8808844/Software performanceresource managementsoftware tools
spellingShingle Shanshan Li
Zhouyang Jia
Yunfeng Li
Xiangke Liao
Erci Xu
Xiaodong Liu
Haochen He
Long Gao
Detecting Performance Bottlenecks Guided by Resource Usage
IEEE Access
Software performance
resource management
software tools
title Detecting Performance Bottlenecks Guided by Resource Usage
title_full Detecting Performance Bottlenecks Guided by Resource Usage
title_fullStr Detecting Performance Bottlenecks Guided by Resource Usage
title_full_unstemmed Detecting Performance Bottlenecks Guided by Resource Usage
title_short Detecting Performance Bottlenecks Guided by Resource Usage
title_sort detecting performance bottlenecks guided by resource usage
topic Software performance
resource management
software tools
url https://ieeexplore.ieee.org/document/8808844/
work_keys_str_mv AT shanshanli detectingperformancebottlenecksguidedbyresourceusage
AT zhouyangjia detectingperformancebottlenecksguidedbyresourceusage
AT yunfengli detectingperformancebottlenecksguidedbyresourceusage
AT xiangkeliao detectingperformancebottlenecksguidedbyresourceusage
AT ercixu detectingperformancebottlenecksguidedbyresourceusage
AT xiaodongliu detectingperformancebottlenecksguidedbyresourceusage
AT haochenhe detectingperformancebottlenecksguidedbyresourceusage
AT longgao detectingperformancebottlenecksguidedbyresourceusage