application itself or a reasonably complete subset of the application, using a load generating tool to
simulate a load representative of your planned deployment environment.
WebSphere applications running with IBM Technology for Java will be subject to the same constraints as
plain Java applications; however, there are some considerations which are specific to WebSphere, as
described in Chapter 6 (Web Server and WebSphere Performance).
7.6 Capacity Planning
Due to the wide variety of Java applications which can be developed, it is impossible to make precise
capacity planning recommendations which would apply to all applications. It is possible, however, to
make some general statements which will apply to most applications. Determining specific system
requirements for a particular application requires performance testing with that application. The
Workload Estimator can also be used to assist with capacity planning for specific environments, such as
WebSphere Application Server or WebSphere Commerce applications.
Despite substantial progress at the language execution level, Java continues to require, on average,
processors with substantially higher capabilities than the same machine primarily running RPG and
COBOL. This is partially due to the overhead of using an object oriented, garbage collected language.
But perhaps more important is that Java applications tend to do more than their counterparts written in
more traditional languages. For example, Java applications frequently include more network access and
data transformation (like XML) than the RPG and COBOL applications they replace. Java applications
also typically use JDBC with SQL to access the database, while traditional iSeries applications tend to use
less expensive data access methods like Record Level Access. Therefore, Java applications will continue
to require more processor cycles than applications with “similar” functionality written in RPG or
COBOL.
As a result, some models at the low end may be suitable for traditional applications, but will not provide
acceptable performance for applications written in Java.
General Guidelines
y
Remember to account for non-Java work on the system. Few System i servers are used for a single
application; most will have a combination of Java and non-Java applications running on the system.
Be sure to factor in capacity requirements for both the Java and the non-Java applications which will
run on the system. The eServer Workload Estimator can be used to estimate system requirements for
a variety of application types.
y
Similarly, be sure to consider additional system services which will be used when adding a new Java
application to the system. Most Java applications will make use of system services like network
communications and database, which may require additional system resources. In particular, the use
of JDBC and dynamic SQL can increase the cost of database access from Java compared to traditional
applications with similar function.
y
Also consider which applications on the system are likely to experience future growth, and adjust the
system requirements accordingly. For example, if a Java/WebSphere application is used as the core
of an e-business application, then it may see significantly more growth (requiring additional system
resources) over time or during particular times of the year than other applications on the system.
IBM i 6.1 Performance Capabilities Reference - January/April/October 2008
©
Copyright IBM Corp. 2008
Chapter 7 - Java Performance
134