Performance Testing For The Masses

"FAST is cool, huh" - good friend of mine told me.

No doubt.

How do I identify the bottleneck with architecture like this?

  • Is it Browser starving resources for client side JavaScript/AJAX heavy processing?
  • Is it jumbo Http Responses (ViewState for example)?
  • Is it Web Server processing takes my time?
  • Is it Application Server (let's assume it is Web Services) takes my time?
  • Is it about DB processing?

Here is the set of tools and steps for sanity check when experiencing performance hits for web applications:

Measuring User experience (Ux) time

Information gathered during this step is the overall latency that end user would experience

Factoring browser processing time

Information gathered during this step can reveal what content type is served back before it get processed by Browser. Here is an example if the data collected by Fiddler (free download):

RESPONSE BYTES (by Content-Type)
--------------
          image/gif:            344
           ~headers:            12,017
          text/html:            66
            text/xml:            1,107
          text/plain:            687
application/json:            104,497

Fiddler gives also time to last byte for each resource too:

 

Understanding Web Server processing time (ASPX and ASMX)

Information gathered during this step can tell you which server - Web Server that serves Web Pages or Web Server that serves Web Services - consumes most of the time. Obviously former should be greater :)

For that purpose set time-taken property to be logged by IIS:

 

Measuring DB processing time

I'll leave it for another day

 

Having all this data at hand one can go ahead and focus on the troublemaker.

Performance Engineering in details is here http://msdn.com/Perf (redirects to http://msdn2.microsoft.com/en-us/library/ms998530.aspx)

 

Enjoy

Published 28 March 07 06:16 by alikl

Comments

# Justin Santa Barbara said on March 28, 2007 2:10 PM:

I'm posting a multi-part series on squeezing the most performance out of ASP.NET, starting with tweaking SQL execution.  So once you've identified the performance problem, my blog offer ssome analysis of what to do about it!  Also, my postings are using SmartViewState as the case study, so if you do find the problem is 'jumbo ViewState' SmartViewState can eliminate that too (http://www.consonica.com/SmartViewState.aspx)!

# alik levin's said on August 16, 2007 9:44 AM:

During recent engagement we tried to improve performance of some web page. Original response time was

# alik levin's said on November 2, 2007 5:49 PM:

Simple examination of IIS logs can reveal potential performance issues related to ASP.NET web applications,

# alik levin's said on January 2, 2008 5:38 AM:

During recent few engagements with my customers I've noticed  VIewState is extensively [unintentionally]

# alik levin's said on January 16, 2008 11:19 PM:

Ever wondered why your application unreasonably slow? You have it all - most powerful hardware, your

# alik levin's said on January 21, 2008 4:37 PM:

Care about performance? Do you write your code with performance in mind? Want little help to spot performance

# alik levin's said on March 9, 2008 3:59 AM:

Building ASP.NET web applications? Plan to serve thousands of users? Would you like to see how your application

# alik levin's - IL said on April 8, 2008 4:49 AM:

PDD - Performance Driven Development presentation by Eran Kolbis made him my Super Hero! by Xurble Eran

# alik levin's said on April 21, 2008 6:16 AM:

These free performance tools will save you time and money identifying performance bottlenecks. Your customers

# Alik Levin's said on April 28, 2008 8:31 AM:

Chatty database access is the surefire way for slow performance caused by  resources starvation

New Comments to this post are disabled

Search

This Blog

. My Personal Blog .

.Net Performance How To's

.Net Security How To's

Design Patterns

Impactful

Lifecycle Phases

Popular

Tools

Syndication

Page view tracker