Capacitas Logo

Web Performance Tips

The rise of web services, particularly as revenue collection systems, means that web service performance is becoming increasingly important. There are a number of reasons why it is often difficult to ensure that web services meet SLAs:

  • Service demand may be difficult to predict
  • Service demand may be extremely bursty, i.e. large numbers of requests may arrive in a short space of time
  • The web service is underpinned by a complex infrastructure, consisting of multiple technology layers
The author has developed a set of web performance tips to help the capacity planner ensure web services meet their performance requirements.

  1. Define the performance requirements of the web service
  2. The performance of a service is not simply how responsive it is to user requests. Performance is also defined by throughput, availability and scalability.

    It is likely that a system will be required to service a given rate of user requests as well as service the requests in a timely fashion. Where web services provide revenue-earning functionality, such as an online ticketing system, availability is a key performance requirement. Availability requirements can be formulated by evaluating the lost revenue from service outages.

    Scalability is an aspect of web service performance that is often overlooked. Put simply, a scalable web service is one where the maximum throughput of the service is maintained when the system is saturated. Conversely, a service that does not scale well will exhibit a reduction in throughput once system saturation is reached.

  3. Model the business demand
  4. Business demand-driven capacity planning should be the goal of the capacity planning function. Thus, the capacity planner must understand the business functionality that the web service provides. For example, an e-commerce site will provide functionality such as Searches, Add to Basket, Purchase, etc. These are termed states. Once the functionality is understood, the capacity planner must quantify the relative number of states visited during a typical user session. The driver of this is that each state is likely to have a different impact at a resource level.

  5. Sizing the service for peak demand
  6. The capacity planning function, in conjunction with the business, should agree whether or not the service should be sized for peak demand. One example of a failure to meet peak demand was the Nectar loyalty card launch in 2002.

    In this case the intention was to meet peak demand. Conversely, in the case of many mobile telephone operators, demand throttling is implemented when extraordinary peaks occur simply because sufficient capacity is not in place to service such high demand.

    Typically intranet based services have predictable peak demands, whereas internet based systems have less predictable peak demand. Examples of predictable peaks include sales promotions, seasonal peaks and scheduled news releases, e.g. publication of government reports or sporting events. Examples of unpredictable peaks include breaking news events.

  7. Build a performance model of the web services
  8. In order to performance and capacity manage a web service, sufficient performance data must be collected. A common mistake is to limit data collection to that provided by native operating system monitors.

    An excellent source of data is the web access log. This can provide the data used to understand the relative number of states visited during a typical user session, thus enabling business demand modelling. The web access log can also provide response time information.

    For those web services that have some payment authorisation component, additional data sources are likely to exist. Payment authorisation is typically implemented using a component provided by a 3rd party provider. These components inherently provide large amounts of logging facilities. The author has used authorisation logs in the past to measure the performance of 3rd party providers relative to overall web service performance.

  9. Modelling performance
  10. Performance modelling provides the capacity planner with the information to understand the relationship between business demand and web service performance.

    Rapid performance modelling can be realised through the use of analytical models. Analytical modelling may be carried out at varying levels of complexity so it is important that the analyst selects an appropriate approach for his/her problem domain. The models can be implemented in common desktop applications such as Microsoft Excel, ensuring little or no capital expense is incurred.

    Analytical models are used to answer the business what if questions e.g:

    • Will service levels be met if web service demand increases by 20%?
    • How will service levels be affected if the number of purchases per user visit increases?
    • How much capital expenditure on hardware will be required over the coming year if web service demand continues to grow?

    It is important to understand what questions need to be answered prior to embarking on a performance modelling exercise.

Access to Capacitas articles is unrestricted although research is restricted to registered users of this website; registration is free and available to all. Click here to sign up now. Subscribers will be informed via email when new research is published.

© Capacitas Ltd 2008 Privacy Policy Code of Professional Practice