Brief introduction
IBM WebSphere Application Server is a reliable enterprise application server that provides a set of core components, resources, and services for developers to use in their applications. Each application has unique requirements and often uses the resources of the application server in a very different way. To provide a high degree of flexibility and support for this wide range of applications, WebSphere application Server provides a comprehensive set of parameters to help you enhance your application's tuning.
The application server has set default values for the most commonly used tuning parameters to ensure that out-of-the-box performance improvements are available for the widest range of applications. However, since any two applications cannot use the application server in exactly the same way, it is not possible to ensure that a set of tuning parameters apply to all applications. This also highlights the importance of performing focused performance testing and tuning for your application.
This article discusses some of the parameters that are most commonly used in WebSphere application Server V7.0 (and previous releases), and how to tune them. Unlike the tuning recommendations provided in other related articles, this article uses the Apache DayTrader performance Benchmark Sample case study as the context for this article. With DayTrader applications, you can clearly identify the primary server components used, focus on tuning these areas, and observe the benefits of various tuning changes.
Before you continue reading, you need to remember some of the things about application server performance tuning:
Improving performance often sacrifices some of the features or features of an application or application server. The trade-off between performance and attributes should be carefully considered when evaluating performance tuning changes.
Some factors outside the application server sometimes affect performance, including hardware and operating system configuration, processes running on the system, performance of backend database resources, network latency, and so on. These factors must be taken into account when you perform a performance assessment yourself.
The performance improvements discussed here are for DayTrader applications only, and are specific to the workloads described here and the supported hardware and software stacks. The application performance improvements that you implement with the tuning changes described in this article are certainly different and should be evaluated through your own performance tests.
DayTrader applications
The Apache DayTrader performance Benchmark Sample application simulates a simple stock trading system that allows users to log on/off, view stock portfolios, inquire stock quotes, trade stocks, and manage account information. DayTrader is not only an excellent functional test application, it also provides a standard set of workloads for describing and measuring application server and component-level performance. DayTrader (and the IBM-developed Trade performance Benchmark Sample application) was not designed to provide optimal performance, but rather to compare application server distributions with alternative implementation styles and patterns.
DayTrader is based on a core set of Java™enterprise Edition (Java EE) technologies, including Java Servlets and Javaserver™pages (JSPs) for presentation tiers, Java Database Connectivity (JDBC) , Java message Service (JMS), Enterprise javabeans™ (EJBs), and messaging-driven beans (MDBs) for back-end business logic and persistence layers. Figure 1 provides a high-level view of the application architecture.
Figure 1. DayTrader application View