Introduction to application performance testing

When performance testing a Web application, several requirements must be determined either through interpretation of data from an existing application that performs similar work, or from best-guess estimates. Those requirements are: User base

What is the expected number of users that will access this application? This is generally expressed in hits per month, day, hour, or minute depending on volumes. Total concurrent users

During a peak interval, what is the maximum possible number of users accessing the application at the same time? This should be planned for, expected, and re-evaluated on a regular basis. Peak request rate

How many pages will need to be served per second? This also should be re-evaluated regularly.

The user base, especially for Web applications, is a difficult number to determine, especially if this is an application that is performing a new function on a Web site. Use existing Web server measurements to provide a "best-guess" number based on current traffic patterns for the site. If capturing these numbers is not possible, then the best option is to determine the breaking point for the application within the intended deployment infrastructure. This provides the ability to monitor once the application is live, and to provide increased capacity prior to a negative user response due to load.

When dealing specifically with applications running in WAS, there are performance testing protocols that can be followed. A good example of this can be found in the article "Performance Testing Protocol for WAS-based Applications" by Alexandre Polozoff found at:

http://www7b.software.ibm.com/wsdd/techjournal/0211_polozoff/polozoff.html

One important point to remember is that performance tuning is more of an "art" than a science. Now do not despair if you get the impression that you will not be able to achieve your tuning goals if you believe to lack the "talent" for that art! Because, on the other hand, performance tuning should also be seen as an art that strictly follows the recurring, monotonous trifold process of Testing - Evaluating - Tuning. This process requires that you know your system, your environment and application very well, you know what you want to test, what goal(s) you want to achieve, and also that you know the tools you are going to use for load testing - all of which implies more of a solid handicraft than an artist's creative work. But having a bit of intuition and developing a feeling for your work will most certainly help you in finding the best configuration more easily. Finally said, experience will be your most valuable friend, so get to know different load testing tools on various environments to gain comprehensive, in-depth knowledge.

The next thing to strictly keep in mind is that it is impossible to tune the environment to significantly impact poor coding practices. It is also important to remember that performance tuning is an ongoing process. Continual reviews of performance should be done to assure that changes in load, application behavior, and site behavior have not adversely impacted the application performance. Also, there are no hard rules for performance tuning. What may be appropriate tuning for one application may not be appropriate for another. It is more important to understand the concepts associated with tuning, and make adjustments based on the understanding gained from those concepts.

  Prev | Home | Next

 

WebSphere is a trademark of the IBM Corporation in the United States, other countries, or both.

 

IBM is a trademark of the IBM Corporation in the United States, other countries, or both.