J2EE performance optimization, part 2: the SPECjAppServer family of benchmarks
Sun Java Application Server Performance, Java Server Pages Tutorial: J2EE applications are required to run efficiently, even when the demand on the system is high. Improving the performance of the system is quite a complex task, within the core application and the use of the J2EE services, and also with the interaction with front-end Web servers and database back-end systems.

by Kingsum Chow, Ph.D., senior performance architect, Managed Runtime Environments group, Intel Corp.

J2EE applications are required to run efficiently, even when the demand on the system is high. Improving the performance of the system is quite a complex task, within the core application and the use of the J2EE services, and also with the interaction with front-end Web servers and database back-end systems.

This article walks through an actual case study of the optimization of a J2EE application in order to illustrate best practices for developers in order to obtain high performance. The companion articles, J2EE Performance Optimization Part 1 and J2EE Performance Optimization Part 3, to this one establish the workload, performance metrics, methodology, and environment for the tuning project. This article builds on the former by providing the details of a case-study performance optimization for the SPECjAppServer family of benchmarks.

Workload Configuration
We chose the dual-node category of SPECjAppServer2002 for our case study, as that is the simplest setup to show case performance of the application on an application server. We chose a system based on 4P Intel® Xeon™ processors for the driver/emulator and a system based on 4P Intel Itanium® 2 processors for the back end. We focus on performance on the application-server middle tier (also a system based on 4P Itanium processors).

We chose Windows as the platform for analysis, although most of the methods of analysis presented here can be applied to other operating systems as well. For the application server and the emulator, we chose BEA WebLogic 8.1, although this study is relevant to other application servers as well. For the JVM running on the application server, we chose BEA JRockit, as it is highly optimized for Intel architecture. We chose a high-speed switched network connection (1Gbps) as a typical production environment for such applications to be deployed in data centers. Figure 1 illustrates the configuration we have described.


J2EE optimization: the SPECjAppServer benchmarks: workload configuration

Figure 1. Workload configuration.

In our case study, we stayed within the scope of design choices as illustrated in Figure 1, but we have opportunities to use different platforms (e.g. different processors, different processor frequencies, different caches and memories) to study their performance impacts. For the database back-end, we have choices of Oracle 9i and Microsoft SQL Server, as well as using or not using RAID disk arrays. The choice of the database back-end systems affects the choice of the JDBC layer for the application server also. For the application server, we have different versions of BEA WebLogic and JRockit at our disposal.

Subscribers who liked this article also read:
Getting the bubbles out of code: designing for the Itanium 2 processor
by Andrew Binstock, principal analyst, Pacific Data Works LLC. Intel C...
Migrating Java to C# manually: four case studies
by Jason A. Fletcher, application engineer, Intel Software and Solu...

If you're interested in this topic, these articles may be helpful:

Enterprise Java performance: best practices
by Kingsum Chow, Ricardo Morin, Kumar Shiv, Software and Solutions Gro...
Intel® VTune™ Performance Analyzer Version 3.0 for Linux*
Identify lines of code that use excessive resources, remove performanc...
J2EE performance optimization, part 1: laying the foundation
by Kingsum Chow, PhD, senior performance architect with the Managed ...
Rational Performance Tester demo
IBM Rational Performance Tester is a performance and load testing so...
EJB best practices: the fine points of data validation - how to get the best performance out of your validation code
by Brett McLaughlin, author and editor, O'Reilly and Associates.First ...

Related Jobs:

Lead Java Developer #838 - NJ - Jersey City - RCG Information Technology
Description: All applicants must have a minimum of 3 years IT Indus...
Websphere Admin #12778 - RI - Cranston - Radiant Systems, Inc
Requirements At least 5 or more years experience in implementation, s...
Senior Test Automation Engineer #254172 - WA - Seattle - Qpass
SUMMARY OF RESPONSIBILITIES Develop automated test cases and framew...
QA Manager-ProdDev #IRC292547 - CA - Redwood Shores - Oracle
Oracle Application Server is an integrated product that enables enterp...
Senior J2EE Administrator #15879 - US - New York - Bloomberg L.P.
DESCRIPTION: Bloomberg's Systems team seeks an expert level Jboss ad...
Sr. Java Developer #8 SG - FL - Fort Lauderdale - SunGard
Reference No.: #8 SG Opening Date: January 12, 2006 Job Title: Sr....
Software Engineer I #T05-4365 - MA - Needham - General Dynamics C4 Systems
Job Title Software Engineer I Location Needham MA Relocation Avail...
Senior Software Engineer - UT - Salt Lake City - SunGard
Reference No.: n/a Opening Date: April 28, 2006 Job Title: Senior ...
Software Developer 2 #IRC280770 - CA - Redwood Shores - Oracle
Oracle is making waves in the real-time collaboration and communicatio...
Business Applications Titles #36206 - FL - Jacksonville - Apex Systems
Job Description: Sr. Level QA Tester Responsible for manual f...