+

Search Tips   |   Advanced Search

Tune the application server using pre-defined tuning templates

Use the Python-based tuning script, applyPerfTuningTemplate.py, along with one of its template files, to apply pre-defined performance tuning templates to the application server or cluster. The property-based template files are located in...

The path for the script files is...

The configuration settings applied by this script and the associated tuning templates should be viewed as a starting point for additional tuning.

Because optimizing for performance often involves trade-offs with features, capabilities, or functional behavior, some of these settings might impact application correctness, while other settings might be inappropriate for the environment.

Settings configured by the predefined templates should be evaluated in a controlled preproduction test environment. We can then create a customized template to refine the tuning settings to meet the specific needs of the applications and production environment.

IBM recommends using the High Performance Extensible Logging (HPEL) log and trace infrastructure. We view HPEL log and trace information using the logViewer.

Typically, when running the applyPerfTuningTemplate.py script, we will specify either the peak.props template file or the development.props template file to apply against the target server or cluster.

In addition to these two common templates, a third template file, default.props, enables reversion of server configuration settings back to the out-of-the-box defaults settings.

To create a custom tuning template, copy one of the existing templates, modify the configuration settings to better fit the needs of the applications and environment, and then use the applyPerfTuningTemplate.py script to apply these customized settings. The script and properties files leverage the property file configuration management features that wsadmin provides, and can be augmented to tune additional server components. See the topic Using properties files to manage system configuration for more information.

Configuration changes that occur based on template file specified. A blank cell in this table indicates that the listed parameter is not configured, or is configured back to the default settings for the server defaults.

Parameter default.props peak.props development.props
JVM Heap Size (MB) 50 min / 256 max 512 min / 512 max 256 min / 512 max
Verbose GC disabled enabled disabled
JVM Diagnostic Trace (Generic JVM Arguments)

This setting might cause issues when web services are used in certain scenarios. Therefore, if we are running web services, and are experiencing throughput optimization issues, we can remove this parameter from the script, or set the opti level to 0.

-Dcom.ibm.xml.xlxp.jaxb .opti.level=3 -Dcom.ibm.xml.xlxp.jaxb .opti.level=3 -Dcom.ibm.xml.xlxp.jaxb .opti.level=3
HTTP (9080) and HTTPS (9443) Channel maxKeepAliveRequests 100 10000 10000
TCP Channel maxOpenConnections 20000 500 500
TCP Channel listenBacklog 511 128 128
Development Mode disabled
enabled
Server Component Provisioning disabled enabled enabled
PMI Statistic Set basic none none
Authentication Cache Timeout 10 minutes 60 minutes 60 minutes
Data Source Connection Pool Size* 1 min / 10 max 10 min / 50 max
Data Source Prepared Statement Cache Size* 10 50
ORB Pass-by-Reference** disabled enabled enabled
Web Server Plug-in ServerIOTimeout 900 900 900
Thread Pools (Web Container, ORB, Default)

See the topic Thread pool settings for more information about this setting.

50 min / 50 max, 10 min / 50 max, 20 min / 20 max
5 min / 10 max

Table notes:

  • * Indicates items that are tuned only if they exist in the configuration. For example, a data source connection pool typically does not exist until an application is installed on the application server. If these items are created after your run the script, they are given the standard server default values unless we specify other settings.

  • ** Enabling ORB Pass-By-Reference can cause incorrect application behavior in some cases, because the Java EE standard assumes pass-by-value semantics. However, enabling this option can improve performance up to 50% or more if the EJB client and server are installed in the same instance, and the application is written to take advantage of these feature. The topic Object Request Broker service settings can help you determine if this setting is appropriate for the environment.

Following are a few subtle platform-specific tuning differences:


Tasks


What to do next

Conduct a performance evaluation, and tuning exercise to determine if we should further fine tune the server for our specific applications.


  • Tune application servers
  • Tune the IBM virtual machine for Java
  • Use properties files to manage system configuration
  • Enable PMI data collection
  • Java virtual machine custom properties
  • HTTP transport channel custom properties
  • Application server settings
  • Authentication cache settings
  • Connection pool settings
  • WAS data source properties
  • Thread pool settings
  • Object Request Broker service settings