The product contains interrelated components that must
be harmoniously tuned to support the custom needs of your end-to-end
e-business application.
About this task
This group of interrelated components
is known as the queuing network. The queuing network helps the system
achieve maximum throughput while maintaining the overall stability
of the system.
The following steps describe various tuning tasks
that may improve your application server performance. You can choose
to implement any of these application server settings. These steps
can be performed in any order.
- Run the applyPerfTuningTemplate.py, as the starting point
for improving the performance of an application server.
You
can use the python-based tuning script, applyPerfTuningTemplate.py,
along with one of its template files, to apply recommended performance
tuning settings. The script, and these template files are located
in the WAS_HOME/bin directory.
- Tune the object request broker.
An Object Request Broker (ORB) manages the interaction between
clients and servers, using the Internet InterORB Protocol (IIOP).
It supports client requests and responses received from servers in
a network-distributed environment. You can use the following parameters
to tune the ORB:- Set Pass by reference (com.ibm.CORBA.iiop.noLocalCopies) as
described in the information on Object Request Broker service settings.
Set the Connection
cache minimum (com.ibm.CORBA.MaxOpenConnections) as described
in the information about Object Request Broker service settings.
Set Maximum size as described in
the topic about thread pool settings.
Set com.ibm.CORBA.ServerSocketQueueDepth as
described in the information about Object Request Broker custom properties.
- Set the com.ibm.CORBA.FragmentSize as
described in the information about Object Request Broker custom properties.
See the information
about Object Request Broker tuning guidelines for tips on using these
parameters to tune the ORB.
- Tune the XML parser definitions.
- Tune the dynamic cache service.
Using the dynamic cache service can improve performance.
See the information on using the dynamic cache server to improve performance
for information about using the dynamic cache service and how it can
affect your application server performance.
Tune the web container.
The product web container manages all HTTP requests to servlets,
JavaServer Pages and web services. Requests flow through a transport
chain to the web container. The transport chain defines the important
tuning parameters for performance for the web container. There is
a transport chain for each TCP port that the product is listening
on for HTTP requests. For example, the default HTTP port 9080 is defined
in web container inbound channel chain. Use the following parameters
to tune the web container:- HTTP requests are processed by a pool of server threads. The minimum
and maximum thread pool size for the web container can be configured
for optimal performance. Generally, 5 to 10 threads per server CPU
provides the best throughput. The number of threads configured does
not represent the number of requests that the product can process
concurrently. Requests are queued in the transport chain when all
threads are busy. To specify the thread pool settings:
- Click server_name.
- Select the normal inbound chain for serving requests. This chain
is typically called WCInboundDefault, and listens on port 9080.
- Click TCP Inbound Channel (TCP_2).
- Set Thread Pools under Related Items.
- Select WebContainer.
- Enter values for Minimum Size and Maximum Size.
- The HTTP 1.1 protocol provides a keep-alive feature to enable
the TCP connection between HTTP clients and the server to remain open
between requests. By default the product closes a given client connection
after a number of requests or a timeout period. After a connection
is closed, it is recreated if the client issues another request. Early
closure of connections can reduce performance. Enter a value for the
maximum number of persistent requests to (keep-alive) to specify the
number of requests that are allowed on a single HTTP connection. Enter
a value for persistent timeouts to specify the amount of time, in
seconds, that the HTTP transport channel allows a socket to remain
idle between requests. To specify values for Maximum persistent requests
and Persistent timeout:
- Click server_name.
Then in the Container Settings section, click .
- Select the normal inbound chain for serving requests. This chain
is typically called WCInboundDefault, and listens on port 9080.
- Click HTTP Inbound Channel (HTTP_2).
- Enter values for Maximum persistent requests and Persistent
timeout.
- Tune the EJB container.
An Enterprise JavaBeans (EJB) container is automatically
created when you create an application server. After the EJB container
is deployed, you can use the following parameters to make adjustments
that improve performance.- Set the Cleanup interval and the Cache size. See
the topic on EJB cache settings for more information.
- Break CMP enterprise beans into several enterprise bean modules. See
the topic on assembling EJB modules for more information.
See the topic on EJB method invocation queuing
for further information.
- Tune the session management.
The installed default settings for session management
are optimal for performance.
- Tune the data sources and associated connection pools.
A data source is used to access data from the database; it is
associated with a pool of connections to that database.- Review the topic on connection pooling to understand how the number
of physical connections within a connection pool can change performance.
- Tune the URL invocation cache.
Each
JavaServer Page is a unique URL. If you have more than 50 unique URLs
that are actively being used, increase the value specified for the
invocationCacheSize JVM custom property. This property controls the
size of the URL invocation cache.