Mon.Itor.Us

Monitor Everything IT: Website, Server, Application, Network. 100% Free!

Free Uptime and Performance Management

Website Performance: Taxonomy of Tips

Tags: , , , , ,


Google/Yahoo Best Practices point­ed out that Google and Yahoo cre­ated lists of best prac­tices for web­site per­for­mance.  Google and Yahoo are not alone.  A recent web search for “per­for­mance tips for web app­li­ca­tions”got over 30 million hits.It may be use­ful to break this topic down into sub­topics.  We could then clas­si­fy tips accor­ding to sub­topic, which would make it easier to find what we need.  In­stead of search­ing allthe tips, we could search only those that per­tain to the prob­lem we are facing.  This ar­ti­cle is my first at­tempt at cre­at­ing a tax­o­no­my (ca­te­gor­i­za­tion) for this pur­pose.  I will not be fol­low­ing the topic fur­ther in fu­ture ar­ti­cles, but per­haps this ar­ti­cle will sug­gest an ap­proach for those who do.

Chronological Basis

The first level of a tax­onomy could start with the chro­no­lo­gi­cal chain of e­vents that oc­cur dur­ing an end-user’s tran­sac­tion:

  1. the client issues the request,
  2. the request journeys to the server,
  3. the server processes the request,
    1. the server executes a script,
    2. the script requests services,
  4. the response journeys to the client,
  5. the page loads, and
  6. the client-side script executes.

If these events were processed serially, the over­all re­sponse time would be the sum of the time spent at each link of the chain.  This means that a slow­down in any one of these e­vents will affect the over­all re­sponse time.  When the user per­ceives an un­ac­cept­able re­sponse time, it often means that on­ly one, not all, of the above events are re­spon­si­ble.  One event is often the weak­est link in the chain.

Identify­ing the weak­est link in the chain and fixing its problems gives us the best pay­back in terms of over­all per­for­mance as a function of resources spent.  If per­for­mance tips were clas­si­fied ac­cor­ding to the events they af­fect, it would be ea­si­er to focus in on the tips that give us the most bang for our buck.

Synchronicity

The above chain of events is mostly serial.  There are ex­cep­tions, though.  Example:  A page can start to load be­fore the en­tire web page has been re­ceived by the client.

If we can make any part of the above pro_cess asyn­chro­nous, that will im­prove per­for­mance, so this is another ca­te­gory we need to add to our tax­o­no­my.

The Taxonomy

The left-hand column of the fol­low­ing ta­ble con­tains the nine ca­te­gories in­tro­duced above.  The right-hand column con­tains ex­am­ples of tips that af­fect the ca­te­gories to their left.

The tips are in­tend­ed to aid in un­der­stand­ing the ca­te­gories.  They are not in­tend­ed to be an ex­haus­tive list, nor to be in suf­fi­cient de­tail to be usable.  The detail will come in fu­ture ar­ti­cles.

Event/Category            Examples of Tips
------------------------  -------------------------------------------------
client issues request     browser configuration; client machine performance
journey to server         number of cookies; number of DNS lookups
server processes request  avoid redirects and rewrites; devoted machine
server-side script        PHP tips
service requests          MySQL tips
journey to client         delay cache expiry; optimize images; compression
page load                 loading CSS and JavaScript; flush the buffer
client-side script        number of DOM elements and accesses
synchronicity             postload components; distributed processing

Future Articles

In fu­ture ar­ti­cles I will use the above tax­o­no­my to pre­sent the best prac­ti­ces iden­ti­fied by Google, Yahoo, and others, which will help us see how tips af­fect each oth­er (both po­si­tively and ne­ga­tively).

References

Best Practices for Speeding Up Your Web Site by Yahoo’s Exceptional Performance Team.  Published by Yahoo at developer.yahoo.com/performance/rules.html.  Accessed 2011.11.30.

Web Performance Best Practices.  Published by Google at code.google.com/speed/page-speed/docs/rules_intro.html.  Accessed 2011.11.30.

Try Monitis For Free.  A 15-day free trial.  Your opportunity to see how easy it is to use the Monitis cloud-based monitoring system.  Credit card not required.

The Monitis Exchange at GitHub.  This is the official repository for scripts, plugins, and SDKs that make it a breeze to use the Monitis system to its full potential.

Bookmark and Share

Written by Warren Gaebel

December 29th, 2011 at 12:00 am


Creative Commons License
Application Performance Management Content by Monitor.Us is licensed under a Creative Commons Attribution 3.0 Unported License.