Profile-based Detection of Layered Bottlenecks

被引:9
作者
Inagaki, Tatsushi [1 ]
Ueda, Yohei [1 ]
Nakaike, Takuya [1 ]
Ohara, Moriyoshi [1 ]
机构
[1] IBM Res, Tokyo, Japan
来源
PROCEEDINGS OF THE 2019 ACM/SPEC INTERNATIONAL CONFERENCE ON PERFORMANCE ENGINEERING (ICPE '19) | 2019年
关键词
layered bottlenecks; wake-up profile; thread dependency graph;
D O I
10.1145/3297663.3310296
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Detection of software bottlenecks which hinder utilizing hardware resources is a classic but complex problem due to the layered structures of the software bottlenecks. However, model-based approaches require a performance model given, which is impractical to maintain under today's agile development environment, and profile-based approaches do not handle the layered structures of the software bottlenecks. This paper proposes a novel approach of taking the best of both worlds which extracts a performance model from execution profiles of the target application to detect the layered bottlenecks. We collect a wake-up profile of threads, which samples an event that one thread wakes up another thread, and build a thread dependency graph to detect the layered bottlenecks. We implement our approach of profile-based detection of layered bottlenecks in the Go programming language. We demonstrate that our method can detect software bottlenecks limiting scalability and throughput of state-of-the-art middleware such as a web application server and a permissioned blockchain network, with small amount of the runtime overhead for profile collection.
引用
收藏
页码:197 / 208
页数:12
相关论文
共 30 条
[1]   Performance Analysis of Idle Programs [J].
Altman, Erik ;
Arnold, Matthew ;
Fink, Stephen ;
Mitchell, Nick .
ACM SIGPLAN NOTICES, 2010, 45 (10) :739-753
[2]   Exploiting hardware performance counters with flow and context sensitive profiling [J].
Ammons, G ;
Ball, T ;
Larus, JR .
ACM SIGPLAN NOTICES, 1997, 32 (05) :85-96
[3]   Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains [J].
Androulaki, Elli ;
Barger, Artem ;
Bortnikov, Vita ;
Cachin, Christian ;
Christidis, Konstantinos ;
De Caro, Angelo ;
Enyeart, David ;
Ferris, Christopher ;
Laventman, Gennady ;
Manevich, Yacov ;
Muralidharan, Srinivasan ;
Murthy, Chet ;
Binh Nguyen ;
Sethi, Manish ;
Singh, Gari ;
Smith, Keith ;
Sorniotti, Alessandro ;
Stathakopoulou, Chrysoula ;
Vukolic, Marko ;
Cocco, Sharon Weed ;
Yellick, Jason .
EUROSYS '18: PROCEEDINGS OF THE THIRTEENTH EUROSYS CONFERENCE, 2018,
[4]  
[Anonymous], 2000, Ph.D. dissertation,
[5]  
Bowden T, 2009, PROC FILESYSTEM
[6]   COZ: Finding Code that Counts with Causal Profiling [J].
Curtsinger, Charlie ;
Berger, Emery D. .
SOSP'15: PROCEEDINGS OF THE TWENTY-FIFTH ACM SYMPOSIUM ON OPERATING SYSTEMS PRINCIPLES, 2015, :184-197
[7]  
Du Bois K, 2013, ACM SIGPLAN NOTICES, V48, P355, DOI [10.1145/2509136.2509529, 10.1145/2544173.2509529]
[8]  
Ecma International, 2017, ECMA404
[9]  
Eyerman S., 2012, 2012 IEEE International Symposium on Performance Analysis of Systems & Software (ISPASS), P145, DOI 10.1109/ISPASS.2012.6189221
[10]  
Franks G., 1996, Software Quality, P15