InfoQ

News

Article: A Formal Performance Tuning Methodology: Wait-Based Tuning

Posted by Abel Avram on Oct 06, 2008 02:33 PM

Community
Architecture,
Java
Topics
Performance & Scalability
Tags
Performance Tuning ,
Performance Evaluation

In this article, Steven Haines talks about web application performance tuning which used to be more of an art than science. He proposes a method called wait-based tuning, making the entire process more measurable and, consequently, more scientific.

Read: A Formal Performance Tuning Methodology: Wait-Based Tuning

Steven explains why web application performance tuning is difficult to perform. A client request may go through several tiers suffering delays at different levels before a response is returned:

Input can come in the form of an HTML browser, a thick client, a mobile device, or a web service, which can pass through servlets running in one of a dozen different architectures or a portal container, that in turn may call enterprise beans, external web services, or delegate processing to a business rules engine. Each of these components may then interact with a content management system, a caching layer, a plethora of databases, and legacy systems.

The complexity of tuning today's web applications can be addressed by analyzing the architecture of the application and defining a series of wait-points marking the path traversed by a client request until it becomes a response that reaches back to the client. There are 2 types of wait-points, according to Steven:

  1. tier-based, marking the transition between tiers
  2. technology-based, mostly related to the usage of underneath infrastructure

Steven says that having "a set of wait-points identified, the tuning process is implemented by opening all tier-based wait-points and external dependency pools, generating balanced and representative load against the application, and tuning backwards, or tightening wait-points to maximize the performance of a request’s weakest link, but without saturating it."

4 comments

Reply

A fresher look at queuing theory .. by muthu kumaran Posted Oct 7, 2008 5:42 AM
Re: A fresher look at queuing theory .. by d taye Posted Oct 9, 2008 2:25 PM
Re: A fresher look at queuing theory .. by muthu kumaran Posted Oct 9, 2008 3:55 PM
Good one by vijay sasi Posted Nov 18, 2008 10:55 AM
  1. Back to top

    A fresher look at queuing theory ..

    Oct 7, 2008 5:42 AM by muthu kumaran

    Nice article applying less-known potentials of queueing theory and queuing models. QoS-intensive telecom network software use this extensively in capacity prediction across various version releases. Resource wait-time is one of the key tuning ingredient in most of telecom services software/middleware and calls for very careful engineering to optimize the performance.

    Good that the perspective is neatly extrapolated to web application model through this article.

  2. how different is this from what's described here:


    www.infoq.com/articles/SEDA-Mule

  3. Back to top

    Re: A fresher look at queuing theory ..

    Oct 9, 2008 3:55 PM by muthu kumaran

    SEDA is a formal architectural paradigm which emphasizes what is stated in the above article. Instrumenting the code to carry wait-time analysis (monitoring request wait-times in various queues through critical application flow, resource monitoring) and implementing a graceful degradation are all design paradigms are facilitated by SEDA through customization mechanisms. This article seems to discuss about the the approach which is apparently facilitated (with some customizations) by frameworks such as Mule

  4. Back to top

    Good one

    Nov 18, 2008 10:55 AM by vijay sasi

    Good article ! Just one thing to clarify I couldn't relate the caching any where in the application tier.

Exclusive Content

Clojure

Rich Hickey discusses Clojure features and syntax, example code, functional programming, concurrency semantics, transactions, software transactional memory, agents, implementation and pain points.

Composite Oriented Programming with Qi4j

We introduce the concept of Composite Oriented Programming, and show how it avoids the issues with OOP and reignites the hope of being able to compose domain models with reusable pieces.

Dan Farino About MySpace’s Architecture

Dan Farino talks about the system architecture and the challenges faced when building a very large online community. Dan explains how a .NET product scales on hundreds of servers.

Principles and Practices of Lean-Agile Software Development

Alan Shalloway, CEO and founder of Net Objectives, presents the Lean software development principles and practices and how they can benefit to Agile practitioners.

The Maxine VM

Bernd Mathiske discusses Maxine VM, Java compatibility, swapping major VM components, research areas, Object handling, code examples, optimizing compiler, snippets, bytecode generation, JNI and JIT.

Joe Armstrong About Erlang

Joe Armstrong speaks on various aspects of the Erlang language, presenting its roots, how it compares with other languages and why it has become popular these days.

The Limits of Code Optimization: a new Singleton Pattern Implementation

The java double-check singleton pattern is not thread safe and can’t be fixed. In this article, Dr. Alexey Yakubovich provides an implementation of the Singleton pattern that he claims is thread-safe.

Pressure and Performance – The CTO's Dilemma

Diana and Jim talk about patterns observed in CTOs' activity. CTOs emerge as real people caring for other people in their organization, and are put under a lot of pressure and constraints.