A Concurrent and Distributed Analysis Framework for Kieker — Joint Kieker / Palladio Days 2013 — Nils Christian Ehmke, Jan Waller, and Wilhelm Hasselbring Software Engineering Group Kiel University, Germany November 28, 2013 @ Karlsruhe Nils Ehmke, Jan Waller, and Wilhelm Hasselbring Kieker Analysis Framework November 28, 2013 @ Karlsruhe 1 / 26
Table of Contents Introduction Introduction 1 Kieker 2 Development 3 Evaluation 4 Conclusion 5 Nils Ehmke, Jan Waller, and Wilhelm Hasselbring Kieker Analysis Framework November 28, 2013 @ Karlsruhe 2 / 26
Online Trace Analysis Introduction Trace Analysis ⊲ View on the dynamic architecture ⊲ Supporting tool for SEs during maintenance tasks ⊲ Useful for legacy and modern software systems Types of Trace Analyses ⊲ Offline (post-mortem) ⊲ Online ⊲ Has to process a high amount of traces ⊲ Needs to be performed very fast ⊲ Nils Ehmke, Jan Waller, and Wilhelm Hasselbring Kieker Analysis Framework November 28, 2013 @ Karlsruhe 3 / 26
Monitoring and Analysis with Kieker Introduction Kieker ⊲ Supports monitoring and analysis ⊲ Not designed for concurrent and distributed analysis networks ⊲ Online trace analysis difficult to implement Nils Ehmke, Jan Waller, and Wilhelm Hasselbring Kieker Analysis Framework November 28, 2013 @ Karlsruhe 4 / 26
Table of Contents Kieker Introduction 1 Kieker 2 Development 3 Evaluation 4 Conclusion 5 Nils Ehmke, Jan Waller, and Wilhelm Hasselbring Kieker Analysis Framework November 28, 2013 @ Karlsruhe 5 / 26
Kieker Kieker Introduction ⊲ Framework and tool collection ⊲ Monitoring and analysis ⊲ Java, Visual Basic 6, COBOL, .Net, ... ⊲ Developed at the Kiel University and the University of Stuttgart Nils Ehmke, Jan Waller, and Wilhelm Hasselbring Kieker Analysis Framework November 28, 2013 @ Karlsruhe 6 / 26
Kieker (cont’d) Kieker Analysis Part ⊲ Typical pipes and filters architecture ⊲ Untypical repositories ⊲ Analysis Controller as supervisor ⊲ Plugins can use deliver method to send data <<Reader>> <<Filter>> <<Filter>> Reader Filter 1 Filter 2 <<Filter>> Filter 3 Nils Ehmke, Jan Waller, and Wilhelm Hasselbring Kieker Analysis Framework November 28, 2013 @ Karlsruhe 7 / 26
Kieker (cont’d) Kieker Reader Filter 1 Filter 2 Filter 3 1: Send Record #1 1.1: Send Data #2 1.2: 1.3: 2: Send Record #1 2.1: Synchronous Message Call Return Call Nils Ehmke, Jan Waller, and Wilhelm Hasselbring Kieker Analysis Framework November 28, 2013 @ Karlsruhe 8 / 26
Table of Contents Development Introduction 1 Kieker 2 Development 3 Evaluation 4 Conclusion 5 Nils Ehmke, Jan Waller, and Wilhelm Hasselbring Kieker Analysis Framework November 28, 2013 @ Karlsruhe 9 / 26
Development of the Concurrent Part Development Basic Design ⊲ Ports can be asynchronous ⊲ Use unbounded FIFO buffers between plugins <<Filter>> <<Filter>> Filter 1 Filter 2 <<Filter>> <<Filter>> <<Filter>> <<Filter>> Filter 1 Filter 2 Filter 1 Filter 2 Receiver Queue Sender Queue <<component>> <<component>> Receiver Sender Nils Ehmke, Jan Waller, and Wilhelm Hasselbring Kieker Analysis Framework November 28, 2013 @ Karlsruhe 10 / 26
Development of the Concurrent Part (cont’d) Development Data Forwarding ⊲ Intercept asynchronous delivering ⊲ Extend the deliver method Sender and Receiver Threads ⊲ Add a thread for each asynchronous port ⊲ Thread can send or receive data Analysis Shutdown ⊲ Send initialization and termination signals through the network ⊲ Termination is autonomous Nils Ehmke, Jan Waller, and Wilhelm Hasselbring Kieker Analysis Framework November 28, 2013 @ Karlsruhe 11 / 26
Development of the Concurrent Part (cont’d) Development ■❆♥❛❧②s✐s❈♦♥tr♦❧❧❡r ❛❝ ❂ ♥❡✇ ❆♥❛❧②s✐s❈♦♥tr♦❧❧❡r ✭✮❀ ✳✳✳ ❈♦♥❢✐❣✉r❛t✐♦♥ t❢❈♦♥❢✐❣✉r❛t✐♦♥ ❂ ♥❡✇ ❈♦♥❢✐❣✉r❛t✐♦♥ ✭✮❀ t❢❈♦♥❢✐❣✉r❛t✐♦♥ ✳ s❡tPr♦♣❡rt②✭ ❆❜str❛❝tP❧✉❣✐♥ ✳ ❈❖◆❋■●❴❆❙❨◆❈❴■◆P❯❚❴P❖❘❚❙ ✱ ❚❡❡❋✐❧t❡r✳ ■◆P❯❚❴P❖❘❚❴◆❆▼❊❴❊❱❊◆❚❙ ✮❀ ❚❡❡❋✐❧t❡r t❡❡❋✐❧t❡r ❂ ♥❡✇ ❚❡❡❋✐❧t❡r✭t❢❈♦♥❢✐❣✉r❛t✐♦♥ ✱ ❛❝✮❀ ✳✳✳ ❛❝✳r✉♥ ✭✮❀ Nils Ehmke, Jan Waller, and Wilhelm Hasselbring Kieker Analysis Framework November 28, 2013 @ Karlsruhe 12 / 26
Development of the Distributed Part Development Basic Design ⊲ Composite filters into analysis nodes ⊲ Analysis can contain multiple nodes ⊲ Nodes have one port of each kind ⊲ Nodes can be distributed ⊲ Usage of MOM for message routing Nils Ehmke, Jan Waller, and Wilhelm Hasselbring Kieker Analysis Framework November 28, 2013 @ Karlsruhe 13 / 26
Development of the Distributed Part (cont’d) Development <<component>> <<component>> Node 1 Node 2 <<component>> <<component>> Node 1 Node 2 <<component>> Receiver Sender Queue Receiver Queue <<component>> Sender Message Delivering via MOM Nils Ehmke, Jan Waller, and Wilhelm Hasselbring Kieker Analysis Framework November 28, 2013 @ Karlsruhe 14 / 26
Development of the Distributed Part (cont’d) Development Repositories ⊲ Only theoretically considered ⊲ Specify access to repositories via ports ⊲ Cumbersome to implement in Kieker Analysis Start and Shutdown ⊲ Start nodes manually ⊲ Send initialization and termination signals through the network ⊲ Termination is autonomous Nils Ehmke, Jan Waller, and Wilhelm Hasselbring Kieker Analysis Framework November 28, 2013 @ Karlsruhe 15 / 26
Development of the Distributed Part (cont’d) Development ■❆♥❛❧②s✐s❈♦♥tr♦❧❧❡r ❛❝ ❂ ♥❡✇ ❆♥❛❧②s✐s❈♦♥tr♦❧❧❡r ✭✮❀ ✳✳✳ ❈♦♥❢✐❣✉r❛t✐♦♥ ♥♦❞❡❈♦♥❢✐❣ ❂ ♥❡✇ ❈♦♥❢✐❣✉r❛t✐♦♥ ✭✮❀ ♥♦❞❡❈♦♥❢✐❣✳ s❡tPr♦♣❡rt②✭ ❆♥❛❧②s✐s◆♦❞❡ ✳ ❈❖◆❋■●❴P❘❖P❊❘❚❨❴◆❆▼❊❴❉■❙❚❘■❇❯❚❊❉ ✱ ✧tr✉❡✧✮❀ ♥♦❞❡❈♦♥❢✐❣✳ s❡tPr♦♣❡rt②✭ ❆♥❛❧②s✐s◆♦❞❡ ✳ ❈❖◆❋■●❴P❘❖P❊❘❚❨❴◆❆▼❊❴◆❖❉❊❴◆❆▼❊ ✱ ✧♥♦❞❡✷✧✮❀ ❆♥❛❧②s✐s◆♦❞❡ ♥♦❞❡✷ ❂ ♥❡✇ ❆♥❛❧②s✐s◆♦❞❡ ✭♥♦❞❡❈♦♥❢✐❣ ✱ ❛❝✮❀ ❆❜str❛❝tP❧✉❣✐♥ t❢ ❂ ♥♦❞❡✷✳ ❝r❡❛t❡❆♥❞❘❡❣✐st❡r ✭❚❡❡❋✐❧t❡r✳❝❧❛ss ✱ ♥❡✇ ❈♦♥❢✐❣✉r❛t✐♦♥ ✭✮✮❀ ♥♦❞❡✷✳ ❝♦♥♥❡❝t❲✐t❤■♥♣✉t ✭t❢ ✱ ❚❡❡❋✐❧t❡r✳ ■◆P❯❚❴P❖❘❚❴◆❆▼❊❴❊❱❊◆❚❙ ✮❀ ✳✳✳ ♥♦❞❡✷✳❝♦♥♥❡❝t✭✧♥♦❞❡✶✧✮❀ ✳✳✳ ❛❝✳r✉♥ ✭✮❀ Nils Ehmke, Jan Waller, and Wilhelm Hasselbring Kieker Analysis Framework November 28, 2013 @ Karlsruhe 16 / 26
Table of Contents Evaluation Introduction 1 Kieker 2 Development 3 Evaluation 4 Conclusion 5 Nils Ehmke, Jan Waller, and Wilhelm Hasselbring Kieker Analysis Framework November 28, 2013 @ Karlsruhe 17 / 26
Statistical and Technical Methods Evaluation Statistical and Technical Methods ⊲ Performed on various blade servers ⊲ Each experiment uses up to six data sets ⊲ Each experiment compares up to five different configurations ⊲ Each configuration is executed ten times ⊲ Five warm-up runs in the same JVM ⊲ Cooldown time between the runs of the distributed experiments ⊲ Student t-distribution ⊲ Confidence intervals ( α = 0 . 05) Nils Ehmke, Jan Waller, and Wilhelm Hasselbring Kieker Analysis Framework November 28, 2013 @ Karlsruhe 18 / 26
Experiments for the Concurrent Part Evaluation Experiments ⊲ 2 x CPU and Memory/Swap records processing ⊲ 2 x Trace Analysis ⊲ 3 x Trace Reconstruction Results ⊲ Very high memory consumption ⊲ Slightly positive speedup during some experiments ⊲ Poor efficiency Nils Ehmke, Jan Waller, and Wilhelm Hasselbring Kieker Analysis Framework November 28, 2013 @ Karlsruhe 19 / 26
Experiments for the Concurrent Part (cont’d) Evaluation ������� ����������� ������������ ����������������� ������� ������������������� ������� ������� ������ �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����������������� Figure: Results from a CPU and Memory/Swap record processing experiment Nils Ehmke, Jan Waller, and Wilhelm Hasselbring Kieker Analysis Framework November 28, 2013 @ Karlsruhe 20 / 26
Recommend
More recommend