24
1 Panel: Building Responsive and Scalable Applications CMG 2008 Session 512 December 11, 2008

Panel: Building Responsive and Scalable Applications

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Panel: Building Responsive and Scalable Applications

1

Panel: Building Responsive and Scalable Applications

CMG 2008

Session 512

December 11, 2008

Page 2: Panel: Building Responsive and Scalable Applications

2

Today's Topic

A short discussion of different software performance engineering aspects (including requirements, modeling, profiling, load/performance testing). Experts will be available to answer questions in a Q&A session.

Moderated by Alex Podelko

Page 3: Panel: Building Responsive and Scalable Applications

3

Agenda

Topic introduction

– What should we do to build responsive and scalable applications?

Panelist introduction

– Panelist views of the topic

Q&A

Page 4: Panel: Building Responsive and Scalable Applications

4

Software Performance Engineering (SPE)

SPE is a comprehensive way of managing performance that includes principles for creating responsive software, performance patterns and antipatterns for performance-oriented design, techniques for eliciting performance requirements, techniques for gathering the data needed for evaluation, and guidelines for the types of evaluations to be performed at each stage of the development process.

– Performance Solutions by C. Smith and L.Williams

Page 5: Panel: Building Responsive and Scalable Applications

5

Software Development Life Cycle

If we think about activities we use to ensure responsiveness and scalability of applications during each stage of Software Development Life Cycle

Page 6: Panel: Building Responsive and Scalable Applications

6

Software Requirements

Performance Requirements

Performance Risk Assessment

Page 7: Panel: Building Responsive and Scalable Applications

7

Software Design

Modeling

Architecture Patterns/Anti-patterns

Performance Design Reviews

Page 8: Panel: Building Responsive and Scalable Applications

8

Software Construction

Implementation patterns/anti-patterns

– product/platform specific

Performance implementation reviews

Instrumentation

Profiling

Page 9: Panel: Building Responsive and Scalable Applications

9

Software Testing

Performance Testing

– Load, stress, volume and other kinds of testing

Page 10: Panel: Building Responsive and Scalable Applications

10

Software Maintenance

Measurements

Performance analysis

Performance troubleshooting

Page 11: Panel: Building Responsive and Scalable Applications

11

Panelists

Greg Dawe, RSA

Ellen Friedman, SRM Associates

Robert Gray, Freddie Mac

Thad Jennings, IBM

Connie Smith, Performance Engineering Services

Page 12: Panel: Building Responsive and Scalable Applications

12

Panelist Introductions

Page 13: Panel: Building Responsive and Scalable Applications

13

Greg Dawe

Senior Engineering Mgr accountable for delivering scalable services to development at RSA, the security division of EMC

Created RSA’s Performance Competency Center

Active evangelist within Management for SPE and test-driven development that includes performance testing

Page 14: Panel: Building Responsive and Scalable Applications

14

Ellen Friedman

Founder of SRM Associates, a consulting firm specializing in resource planning and application optimization.

Many load testing papers focusing on application and system performance:

– Web services/SOA, Database performance, and Virtualization across all platforms.

Critical Systems: Planning, Stress Testing in the lab, early Alpha and Beta testing.

Page 15: Panel: Building Responsive and Scalable Applications

15

Stress/Load testing

Relative Cost to Fix Errors

1

10

100

1000

Life Cycle Phases

Rel

ativ

e co

st to

fix

erro

r

Page 16: Panel: Building Responsive and Scalable Applications

16

Design Phase/Data Gathering

♦ System Logic flow

♦ System Software Architecture

♦ Software Component Definition

♦ Database Logical and Physical Design

♦ Transaction Details

♦Map Functions to processing and data requirements

♦Determine transaction instrumentation requirements

♦ Initial Performance Assessment Process

♦Evaluate design alternatives and performance impact

Page 17: Panel: Building Responsive and Scalable Applications

17

Testing throughout the life-cycle

Measure

Monitor

Tune

Re-Test

Develop Models

Forecast requirements

Page 18: Panel: Building Responsive and Scalable Applications

18

Robert Gray

Director of Capacity Planning and Performance Management at Freddie Mac.30 Year experiences in IT Infrastructure, Capacity Planning and System Tuning as both practitioner and executive.

Engaged in the practice of SPE methods and techniques for 20 Years, previous SPE CMG Panelist.

Telecommunications and Financial Services background (Riggs Bank, Comsat, MCI, Bell Atlantic, Verizon).

Page 19: Panel: Building Responsive and Scalable Applications

19

Thad JenningsSoftware performance engineer since joining IBM in 1985

Focus on design analysis, measurement and modeling of various Tivoli systems and network management products in Software Group

Core team member of internal performance and capacity community with members from across IBM (Global Services, Server Group, Research, etc.)

Former president of Southern CMG region; three CMG papers (92, 94 and 01), and SPE CMG panelist in 2002

Page 20: Panel: Building Responsive and Scalable Applications

20

Favorite tools for isolating problems in performance test

CPU profiling/tracing– Performance Inspector (Windows/Linux)

Sampling and instruction tracing for Java and C/C++

Open Source project, available at http://perfinsp.sourceforge.net/

– AIX tprof commandcd to directory containing executable that you want to profiletprof -k -s -e -P <pid> -x sleep 30

Produces sleep.prof report showing distribution of activity

Disk I/O analysis– Finding out which process is hitting the disk and which file is getting the activity

– FileMon for Windows – detailed I/O tracing, available at http://technet.microsoft.com/en-us/sysinternals/bb896642.aspx)

– AIX filemon and procfiles commandsfilemon -T 4000000 -P -v -u -o /tmp/filemon.out -O all

trcstop - stops the trace and produces report

Files already open at start of trace will show up as file descriptors only. To see open file descriptors, procfiles -n <pid>

Page 21: Panel: Building Responsive and Scalable Applications

21

Connie Smith

Active in defining the field of Software Performance Engineering

– AA Michelson award for SPE

– SPE Publications2 SPE books, many book chapters, numerous technical

papers

www.spe-ed.com

– SPE·ED Performance Engineering Tool

– SPE consulting, research & development

Page 22: Panel: Building Responsive and Scalable Applications

22

Quantitative Assessment

Begins early, frequency matches system criticalityOften find architecture & design alternatives with lower resource requirementsSelect cost-effective performance solutions early

Page 23: Panel: Building Responsive and Scalable Applications

23

Software Versus System Modeling Tools

Software Performance Model

Execution Graphs (may be spread-sheet, pseudo-code, etc. views of EGs)

System Execution Model

Queueing Networks

New Work

PerformanceMetrics

Model

ExistingWork

System SoftwareRequires more modeling expertise

Requires less modeling expertise

Device usage, overall response time and throughput

Time and resource requirements of processing steps and overall

Useful to evaluate hardware changes

Useful to evaluate software alternatives

A combination is best.

Page 24: Panel: Building Responsive and Scalable Applications

24