Sur vey of Web
 Performance Analysis
               Guy Ferraiolo, Norstrilia Soft ware, Inc.
                    gdf@norstriliasoft ware.com

                         copyright 2009, Guy Ferraiolo
                                            some rights reser ved
This work is licensed under the Creative Commons Attribution-No Derivative Works 3.0 License. To view a copy of this
license, visit http://creativecommons.org/licenses/by-nd/3.0/ or send a letter to Creative Commons, 171 Second
Street, Suite 300, San Francisco, California, 94105, USA.
Introduction
Who am I?
Consultant, Principal Soft ware
Engineer, 8 years at a major internet
presence, 30 years in the soft ware
industry
Ran performance testing effort, t wo
sophisticated performance test labs
Committer and contributor to Apache
Soft ware Foundation
My Environment
In a performance group
Work with engineering organizations
to facilitate and empower their
performance analysis efforts
Responsibilities clearly divided among
organizations
tiered architecture, mostly
Approach of This Talk

Find a conceptual basis
 the task is complex
Provide some advice based on experience
Focus of This Talk
Sur vey only, much more information is
available
Primarily concepts, some discussion of
tools
Heuristics and work processes
General, using web examples, HTTP
Will Provide

Definite advice
Amusing anecdotes
Some tool recommendations
Won’t Provide


Magic bullets
Simple answers
Performance Analysis
Goals

Know what performance results are
Understand reasons for performance
results
Save money
Save time
Two Different Web
Performance Aspects
Page delivery time
Resource cost to deliver a page
Not entirely unrelated but commonly
confused
Why Performance
    Matters
Poor performance means less traffic and
therefore less revenue
This relationship is surprizingly strong,
perhaps 20% less traffic for an
additional 0.1 seconds
Infrastructure is very expensive
Why Resource Cost
    Matters
A highly dynamic page may be very
light weight but require enormous effort
to assemble - the example is Google
Even if a page is fast to deliver the cost
of the infrastructure to create it can be
a major business problem
Performance Analysis

is primarily analytic
   but testing is essential
works best when integrated into the
development process
Performance Analysis
     Consists of
Detecting Performance Issues
 some sort of monitoring is needed
Localizing Performance Issues
 usually done with analysis
Resolving Performance Issues
 often easy but testing can be critical
Performance Analysis

is not code monkey work
is not fast
is not highly rigorous
Types of Performance
      Analysis

Capacity planning
Acceptance testing
Design and algorithm selection
Good & Bad News

Meaningful results can be obtained
Results sometimes not expected
Requires a serious investment
Is inherently iterative
Where to Start

A hierarchy of
 concepts - most important
 policies - derived from concepts
 tools - necessary but not dominant
Concepts
The Big Concept

Reduction of Uncertainty
 overarching concept
 provides answers to why?, what? and
 do I care?
How to Apply the Big
     Concept
Relate performance to business needs
 provide enough information to allow
 management to make meaningful
 business decisions
 gain enough information to allow
 extrapolation of trends
Other Concepts
Intuition is likely to be wrong
The process is inherently iterative
 business process
 technical process
An early start is very helpful
Policies
Policies
Analyze and test enough to make a
business decision
Have a clearly defined process
Define your purpose
Make a quantitative estimate of the
traffic
Let those who know something, do it
More Policies

Communicate openly and often
Compartmentalize responsibility
Do not use performance testing to
expose functional problems, this is not
QA (quality assurance)
Processes
Process Attributes

Defined
Documented
Public
Includes pre and post testing
Pre-Test Process

Assign responsibilities, be definite about
who
Declare goals
Record configuration
Assess traffic quantity and type
Post-Test Process

Meet definite end criteria
Report results
Make recommendations
Communicate issues
Test Process

Dynamic, goal seeking
Interactive
Iterative
Duration depends on behavior
Test Options


Live or lab
End-to-end or component
The Most Common
      Error

Unjustified belief that the problem is
code related, usually architecture, data,
traffic
Common Pitfalls

Unclear goals
N-dimensional matrix of tests
Emphasis on the tool
Emphasis on the code
More Common Pitfalls


 Focus on a single tool for testing
 Belief in a single answer to the problem
Tools
Tools Issues
Open source or proprietary?
Proxy capture of user actions?
Scriptable?
Randomizable?
Enforce policies?
Two Types of Tools


Load generators
Test environment managers
Load Generators

flood
JMeter
many others
Load Generator Issues

Synchronous
Randomizable
Script or proxy
Load ramping
Load Generator
      Obsession
What people usually mean when they
talk about performance testing tools
Necessary
Far from sufficient
There are many
Environment Managers

 Unlike load generators, few if any exist
 But, you can get lots of what is needed
 through policies and procedures
Test Environment

Controlled
Isolated
Automated
Recording
Test Facility
      Components
Manager
Load generator
System under test
Data recorder
Report generator
Performance Tests
Test Design
Much more in common with experiment
design than statistical analysis
Statistics are good, but ...
You don’t need statistics to know which
tire is flat
Good test design can make it that
obvious
Test Components

Two parts
 load side
 system under test side
Test Results
Also have t wo sides
Load side
 requests/s, s/request
 timing of parts of the request
System under test side
 system and application metrics
Test Analysis

Reality check results and test
parameters
Compare to actual or derive a baseline
Follow good analytic methodology
 multiple tests, etc.
Pet Peeves
Load ramping
 if you want different loads, run
 different tests
 actual load changes hard to match
Proxy capture
 better to get real traffic from logs
Wrap Up
Key Points

Strong concepts
Well-defined process
Experiment design
Iterative
How to Solve Your
      Problem
I’m available for consulting
Introductory talks for Managers and
Engineers
tools, instruction, procedures, policies
Further Info - General
    Information
 http:/opensourcetesting.org/
 performance.php
 http:/www.soft wareqatest.com/
 qat web1.html/#LOAD
 search for ‘web performance testing’
Further Info -
      Proprietary

TestRunner
OpenLoad
Further Info - Load
    Generators
JMeter
 http://jakarta.apache.org/jmeter/
Flood
 http://httpd.apache.org/test/flood/
Further Info -
Environment Managers
 OpenSTA
  http://opensta.org
 Faban
  http://faban.sunsource.net
 The Grinder
  http://grinder.sourceforge.net
Excellent Book


Programming Pearls, Jon Bentley
Thanks!
Sur vey of Web
Performance Analysis
  Guy Ferraiolo, Norstrilia Soft ware, Inc.
       gdf@norstriliasoft ware.com
contact information

Web Performance Analysis - TCF Pro 2009

  • 1.
    Sur vey ofWeb Performance Analysis Guy Ferraiolo, Norstrilia Soft ware, Inc. gdf@norstriliasoft ware.com copyright 2009, Guy Ferraiolo some rights reser ved This work is licensed under the Creative Commons Attribution-No Derivative Works 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nd/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
  • 2.
  • 3.
    Who am I? Consultant,Principal Soft ware Engineer, 8 years at a major internet presence, 30 years in the soft ware industry Ran performance testing effort, t wo sophisticated performance test labs Committer and contributor to Apache Soft ware Foundation
  • 4.
    My Environment In aperformance group Work with engineering organizations to facilitate and empower their performance analysis efforts Responsibilities clearly divided among organizations tiered architecture, mostly
  • 5.
    Approach of ThisTalk Find a conceptual basis the task is complex Provide some advice based on experience
  • 6.
    Focus of ThisTalk Sur vey only, much more information is available Primarily concepts, some discussion of tools Heuristics and work processes General, using web examples, HTTP
  • 7.
    Will Provide Definite advice Amusinganecdotes Some tool recommendations
  • 8.
  • 9.
  • 10.
    Goals Know what performanceresults are Understand reasons for performance results Save money Save time
  • 11.
    Two Different Web PerformanceAspects Page delivery time Resource cost to deliver a page Not entirely unrelated but commonly confused
  • 12.
    Why Performance Matters Poor performance means less traffic and therefore less revenue This relationship is surprizingly strong, perhaps 20% less traffic for an additional 0.1 seconds Infrastructure is very expensive
  • 13.
    Why Resource Cost Matters A highly dynamic page may be very light weight but require enormous effort to assemble - the example is Google Even if a page is fast to deliver the cost of the infrastructure to create it can be a major business problem
  • 14.
    Performance Analysis is primarilyanalytic but testing is essential works best when integrated into the development process
  • 15.
    Performance Analysis Consists of Detecting Performance Issues some sort of monitoring is needed Localizing Performance Issues usually done with analysis Resolving Performance Issues often easy but testing can be critical
  • 16.
    Performance Analysis is notcode monkey work is not fast is not highly rigorous
  • 17.
    Types of Performance Analysis Capacity planning Acceptance testing Design and algorithm selection
  • 18.
    Good & BadNews Meaningful results can be obtained Results sometimes not expected Requires a serious investment Is inherently iterative
  • 19.
    Where to Start Ahierarchy of concepts - most important policies - derived from concepts tools - necessary but not dominant
  • 20.
  • 21.
    The Big Concept Reductionof Uncertainty overarching concept provides answers to why?, what? and do I care?
  • 22.
    How to Applythe Big Concept Relate performance to business needs provide enough information to allow management to make meaningful business decisions gain enough information to allow extrapolation of trends
  • 23.
    Other Concepts Intuition islikely to be wrong The process is inherently iterative business process technical process An early start is very helpful
  • 24.
  • 25.
    Policies Analyze and testenough to make a business decision Have a clearly defined process Define your purpose Make a quantitative estimate of the traffic Let those who know something, do it
  • 26.
    More Policies Communicate openlyand often Compartmentalize responsibility Do not use performance testing to expose functional problems, this is not QA (quality assurance)
  • 27.
  • 28.
  • 29.
    Pre-Test Process Assign responsibilities,be definite about who Declare goals Record configuration Assess traffic quantity and type
  • 30.
    Post-Test Process Meet definiteend criteria Report results Make recommendations Communicate issues
  • 31.
    Test Process Dynamic, goalseeking Interactive Iterative Duration depends on behavior
  • 32.
    Test Options Live orlab End-to-end or component
  • 33.
    The Most Common Error Unjustified belief that the problem is code related, usually architecture, data, traffic
  • 34.
    Common Pitfalls Unclear goals N-dimensionalmatrix of tests Emphasis on the tool Emphasis on the code
  • 35.
    More Common Pitfalls Focus on a single tool for testing Belief in a single answer to the problem
  • 36.
  • 37.
    Tools Issues Open sourceor proprietary? Proxy capture of user actions? Scriptable? Randomizable? Enforce policies?
  • 38.
    Two Types ofTools Load generators Test environment managers
  • 39.
  • 40.
  • 41.
    Load Generator Obsession What people usually mean when they talk about performance testing tools Necessary Far from sufficient There are many
  • 42.
    Environment Managers Unlikeload generators, few if any exist But, you can get lots of what is needed through policies and procedures
  • 43.
  • 44.
    Test Facility Components Manager Load generator System under test Data recorder Report generator
  • 45.
  • 46.
    Test Design Much morein common with experiment design than statistical analysis Statistics are good, but ... You don’t need statistics to know which tire is flat Good test design can make it that obvious
  • 47.
    Test Components Two parts load side system under test side
  • 48.
    Test Results Also havet wo sides Load side requests/s, s/request timing of parts of the request System under test side system and application metrics
  • 49.
    Test Analysis Reality checkresults and test parameters Compare to actual or derive a baseline Follow good analytic methodology multiple tests, etc.
  • 50.
    Pet Peeves Load ramping if you want different loads, run different tests actual load changes hard to match Proxy capture better to get real traffic from logs
  • 51.
  • 52.
    Key Points Strong concepts Well-definedprocess Experiment design Iterative
  • 53.
    How to SolveYour Problem I’m available for consulting Introductory talks for Managers and Engineers tools, instruction, procedures, policies
  • 54.
    Further Info -General Information http:/opensourcetesting.org/ performance.php http:/www.soft wareqatest.com/ qat web1.html/#LOAD search for ‘web performance testing’
  • 55.
    Further Info - Proprietary TestRunner OpenLoad
  • 56.
    Further Info -Load Generators JMeter http://jakarta.apache.org/jmeter/ Flood http://httpd.apache.org/test/flood/
  • 57.
    Further Info - EnvironmentManagers OpenSTA http://opensta.org Faban http://faban.sunsource.net The Grinder http://grinder.sourceforge.net
  • 58.
  • 59.
  • 60.
    Sur vey ofWeb Performance Analysis Guy Ferraiolo, Norstrilia Soft ware, Inc. gdf@norstriliasoft ware.com
  • 61.