msr2016 tarek

26
1 Studying the Effectiveness of Application Performance Management (APM) Tools for Detecting Performance Regressions for Web Applications Tse-Hsun Chen Ahmed E. Hassan Weiyi Shan Tarek M. Ahmed Cor-Paul Bezemer An Experience Report

Upload: swy351

Post on 13-Jan-2017

1.761 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Msr2016 tarek

1

Studying the Effectiveness of Application Performance Management (APM) Tools for

Detecting Performance Regressions for Web Applications

Tse-Hsun Chen Ahmed E. Hassan Weiyi ShangTarek M. Ahmed Cor-Paul Bezemer

An Experience Report

Page 2: Msr2016 tarek

2

Page 3: Msr2016 tarek

3

$1.6 billion loss for a one-second slowdown

Page 4: Msr2016 tarek

4

What is a performance regression?

Version 1 Version 2

Does version 2 have worse performance than the version 1?

Page 5: Msr2016 tarek

5

Performance regression:changed source code + unchanged workload

change in performance?

Version 1

Version 2

requests

requests

requests

Performance metrics

Performance metrics

Unchanged workload Testing environment

Testing environment

Changed source code Change in

performance?

Page 6: Msr2016 tarek

6

MSR techniques are widely used to detect performance regressions

Page 7: Msr2016 tarek

7

MSR techniques are widely used to detect performance regressions

Building statistical models Mining data associationsComparing distributions

Page 8: Msr2016 tarek

8

An example of using MSR techniques to detect performance regressions

Version 1 Version 2

Build model

Verify model

Model Prediction error

< threshold

> threshold

Shang et al. ICPE 2015

Page 9: Msr2016 tarek

9

The extensive performance regression detection research is hardly adopted in practice

Too complex to implement by practitionersNot easily accessible

Page 10: Msr2016 tarek

10

Application performance management (APM) tools are well adopted in practice

Page 11: Msr2016 tarek

11

APM tools work with:unchanged source code + changing workload

requests

requests

requests

Real users

Field environment

Slow transactionsChanging workload

Unchanged source code

Page 12: Msr2016 tarek

12

An example report from an APM tool

Most time consuming transactions

Time breakdown for the transaction

Page 13: Msr2016 tarek

13

Performance regressions detection research

+ unchanged workload

changed source code

Not well adopted

unchanged source code +

changing workload

Widely adopted

Page 14: Msr2016 tarek

14

Research Questions:

Can APM tools detect performance regressions?

Can APM tools be used as a vehicle to deploy performance regression detection research in practice?

Page 15: Msr2016 tarek

15

Case study: subject systems and injected performance regressions

CPU overhead

Memory overhead

Inefficient use of database

• Unreleased resources• Inefficient use of data streams

• Unnecessary loop• Loop with a missing break

condition

• One-by-one processing• Excessive data

Page 16: Msr2016 tarek

16

We leverage APM tools to detect injected performance regressions

Slow transactions in new version

Slow transactions in old version

Version 1

Version 2

requests

requests

requests

Unchanged workload Testing environment

Testing environment

Changed source code

Page 17: Msr2016 tarek

17

Series10

1

2

3

4

5

6 Series1 Series2

APM tools can detect performance regressions

# of

det

ecte

d iss

ues d

etec

ted

Commercial Open source

Total 6 issues injected

Page 18: Msr2016 tarek

18

APM tools have rooms of improvement

APM tools are a great vehicle to push performance regression detection research into practice.

Large amounts of reports for manual exploration Basic analysis

Lack of actionable suggestion

Page 19: Msr2016 tarek

19

$1.6 billion loss for a one-second slowdown

Page 20: Msr2016 tarek

20

Page 21: Msr2016 tarek

21

unchanged source code +

changing workload

Widely adopted

Performance regressions detection research

changed source code +

unchanged workload

Not well adopted

Page 22: Msr2016 tarek

22

Page 23: Msr2016 tarek

23

Case study: subject systems and injected performance regressions

CPU overhead

Memory overhead

Inefficient use of database

• Unreleased resources• Inefficient use of data streams

• Unnecessary loop• Loop with a missing break

condition

• One-by-one processing• Excessive data

Page 24: Msr2016 tarek

24

Page 25: Msr2016 tarek

25

Series10

1

2

3

4

5

6 Series1 Series2

APM tools can detect performance regressions

# of

det

ecte

d iss

ues d

etec

ted

Commercial Open source

Total 6 issues injected

Page 26: Msr2016 tarek

26

Weiyi Shang [email protected]