31
1 Problem Statement Developers vastly outnumber performance engineers. Many developers creating performance defects Very few performance engineers are tasked to locate those defects …very difficult to deliver good performance.

1 Problem Statement Slide with Table Table Header – Calibri, 16 pt – 85 percent black Subhead – Calibri, 12 pt – 85 percent black Table Copy – Calibri,

Embed Size (px)

Citation preview

1

Problem Statement

Developers vastly outnumber performance engineers.• Many developers creating performance defects• Very few performance engineers are tasked to locate those defects

…very difficult to deliver good performance.

©2012 FIS and/or its subsidiaries. All Rights Reserved.

Help Developers (Finally) Find Their Own Performance [email protected] Software Architect

Obstacles

3

These obstacles are here to stay:

Developers do not have:• Performance

expertise• Budget for tools

(monitoring, load gen)• Time

Obstacles

4

These obstacles are here to stay:

Developers do not have:• Performance

expertise• Budget for tools

(monitoring, load gen)• Time

We will show them

Use free tools

Focus on small set ofrecommendations

Benefits

5

• Locate defects earlier cut costs • Avoid re-work FTP ROI• (finally) Accountability for

performance defects.• To make time to address higher

priorities, such as..

Personal Wish List - 1

6

• Better automation for more dailyfix-test iterations– Environment Install– Code Deployment– Data Refresh– Log File Collection/Reporting– Put Client & Server Perf Data on same

report

Personal Wish List - 2

7

• Better Quality Data Loaded Faster• Performance Training• Environment Turnover

Personal Wish List - 3

8

• Monitor cache hit/miss/expiration• Timeout Testing• Recovery Testing

Personal Wish List - 4

9

• Better Repeat-Ability• Better Capacity Planning• Radical Response Time Improvement

http://martinfowler.com/articles/lmax.html

Which defects should I delegate?Viful focus.

Which defects to delegate?

11

easy tofind

frequently problematic

developers

performanceengineers

Which defects to delegate?

12

• KISS – Consider avoiding load generation (walk before you run).

• Architecture first then main BP• Be brief & specific: EX: DIzzy

Requires Culture Change

13

• The Easy Way collaborative

• The Hard Way combative

…consider a protective chess maneuver

An Example

What

15

• Get a dedicated performance environment• This will require a little coding (tests and reports)• Transparency

http://www.cmg.org/conference/cmg2011/awards/1133.pdf

What

16

#1 - Duplicate Request / SQL, Other#2 – SQL Efficiency#3 – Duplicate HTTP Request #4 - No-load Response Time Regression#5 - Longevity #6 - Functional Tests

http://www.cmg.org/conference/cmg2011/awards/1133.pdf

#1 - Duplicate SQL Request

17

SELECT * FROM CUSTOMER WHERE CID=”?”SELECT * FROM CUSTOMER WHERE CID=”?”SELECT * FROM PRODUCT WHERE PRD_ID = ”?”SELECT * FROM PARAMETERSELECT * FROM CUSTOMER WHERE CID=”?”SELECT * FROM PARAMETERSELECT * FROM USER WHERE USER_ID=”?”

InTrace

P6Spy

JAMon

http://ostermueller.blogspot.com/2012/01/intrace.html

#1 - Duplicate SQL Request

18

3 SELECT * FROM CUSTOMER WHERE CID=”?”2 SELECT * FROM PARAMETER1 SELECT * FROM PRODUCT WHERE PRD_ID = ‘?’1 SELECT * FROM USER WHERE USER_ID=”?”

InTrace

P6Spy

JAMon

http://ostermueller.blogspot.com/2012/01/intrace.html

#1 - Duplicate SQL Request

19

Trace activity for a single BPa. Turn SQL tracing “on”b. Run the automated unit test to exercise

process.c. Turn SQL tracing “off”d. Sort/group/count data using this linux

command:==> sort mySql.txt | uniq –c

InTrace

P6Spy

JAMon

http://ostermueller.blogspot.com/2012/01/intrace.html

#1 - Duplicate SQL Request

20

Bind Variable CautionWithout:SELECT A FROM B WHERE C= X SELECT A FROM B WHERE C= YWithSELECT A FROM B WHERE C= ?SELECT A FROM B WHERE C= ?

InTrace

P6Spy

JAMon

http://ostermueller.blogspot.com/2012/01/intrace.html

Bad

Good

#1 - Duplicate SQL Request

21

InTrace

P6Spy

JAMon

http://ostermueller.blogspot.com/2012/01/intrace.html

Caching Caution:

Run entire automated testing process twice.

Discard results from first iteration.

#1 - Duplicate SQL Request

22

InTrace

P6Spy

JAMon

http://ostermueller.blogspot.com/2012/01/intrace.html

Other activity to (centrally) trace:

• CICS (Customer Information Control System)• JMS (Java Messaging Service)• LDAP (Lightweight Directory Access Protocol)

#1 - Duplicate SQL Request

23

InTrace

P6Spy

JAMon

Be specific!How good is good enough?Use the “DIzzy” metric to judge:http://ostermueller.blogspot.com/2012/04/zero-dizzy.html

InTrace Demohttp://ostermueller.blogspot.com/2012/01/intrace.html

Summary

26

Summary (Problem Statement)

Developers vastly outnumber performance engineers.

• Many developers creating performance defects• Very few performance engineers are tasked to locate those defects

…very difficult to deliver good performance.

Summary (Solution)

27

“Delegate easy stuff to Developers”

Developers do not have:• Performance

expertise• Budget for tools

(monitoring, load gen)• Time

We will show them

Use free tools

Focus on small set ofrecommendations

Conclusion (Part I)

28

• Evangelize / Train• Executive Sponsor• Find the Project Schedule

Conclusion (Part II)

29

Transplant performance-minded people into

• Development organizations.• University programs

– Let’s graduate kids that get performance“right” the first time

Conclusion (Part III)

30

Getting performance “right” the first time is a convincing recipe for ROI.

FTP(First Time Performance)

[email protected]: http://www.cmg.org/conference/cmg2011/awards/1133.pdfMetric: http://ostermueller.blogspot.com/2012/04/zero-dizzy.htmlDemo: http://ostermueller.blogspot.com/2012/01/intrace.html

Thank You