Tune the application serving environment
Use this topic to understand the benefits of tuning for optimal performance. Learn about the tunable parameters of the major WebSphere Application Server components and how these parameters affect performance.
WebSphere Application Server provides tunable settings for its major components so that we can adjust the runtime environment to match the characteristics of your application. Applications can run successfully without changing the default values for these tuning parameters. Other applications might need changes, for example, a larger heap size, to achieve optimal performance.
Performance tuning can yield significant gains in performance even if an application is not optimized for performance. However, correcting shortcomings of an application typically results in higher performance gains than are possible with just altering tuning parameters. Many factors contribute to a high performing application.
- For the convenience, procedures for tuning parameters in other products, such as DB2 , web servers and operating systems are included. Because these products might change, consider these descriptions as suggestions.
Each WebSphere Application Server process has parameters that influence application performance. We can use the WAS administrative console to configure and tune applications, web containers, EJB containers, application servers, and nodes in the administrative domain.
- Run the applyPerfTuningTemplate.py script as the starting point for improving the performance of a specific application server. This python-based tuning script, along with one of its template files, applies the recommended performance tuning settings for a typical development, production, or environment that is ready for immediate use. The applyPerfTuningTemplate.py script, and its associated templates and properties files, are located in the WAS_HOME/bin directory.
- Use the performance advisors, the suggested procedures or parameters in the tuning parameter hot list, and the information on troubleshooting performance problems to optimize the WAS instances to their fullest extent.
- Performance advisors
- The performance advisors use the Performance Monitoring Infrastructure (PMI) data to suggest configuration changes to Object Request Broker (ORB) service thread pools, web container thread pools, connection pool size, persisted session size and time, prepared statement cache size, and session cache size. The Runtime Performance Advisor runs in the application server process, while the other advisor runs in the Tivoli Performance Viewer. For more information, see the documentation about using the Performance and Diagnostic Advisor and use the performance advisor in Tivoli Performance Viewer.
- Tune parameter hot list
- Review the documentation about the tuning parameter hot list. These parameters have an important impact on performance. Because these parameters are application-dependent, the parameter settings for specific applications and environments can vary.
Tune parameter index for z/OS
- Performance tuning for WebSphere Application Server for z/OS operating systems becomes complex because the nature of the runtime environment involves many different components of the operating system and middleware.
To find information and parameters for tuning the z/OS operating system, subsystems, the WAS for z/OS runtime environment, and some Java 2 Platform, Enterprise Edition (Java EE) application tuning tips, see the documentation about the tuning parameter hot list.
Best practice: We can read the WAS for z/OS tuning guidelines, which will explain how to tune the middleware. However, it is important that you ensure that the application is optimally designed to improve performance. Often, poorly written or designed application code changes can have a significant effect on overall performance.bprac
If we are a WAS administrator or system programmer on WebSphere Application Server for z/OS, see the documentation about the tuning index for WebSphere Application Server for z/OS. Each parameter description explains the parameter; provides reasons to adjust the parameter; describes how to view or set the parameter; and indicates default and recommended values.
- Troubleshooting performance
- To save you time detecting problems and help you troubleshoot performance problems, see the documentation about troubleshooting performance.
Subtopics
- Tune parameter hot list
The following hot list contains recommendations that have improved performance or scalability, or both, for many applications.
- Directory conventions
References in product information to app_server_root, profile_root, and other directories imply specific default directory locations. Become familiar with the conventions in use for WebSphere Application Server.
- Tune TCP/IP buffer sizes
WAS uses the TCP/IP sockets communication mechanism extensively. For a TCP/IP socket connection, the send and receive buffer sizes define the receive window. The receive window specifies the amount of data that can be sent and not received before the send is interrupted. If too much data is sent, it overruns the buffer and interrupts the transfer. The mechanism that controls data transfer interruptions is referred to as flow control. If the receive window size for TCP/IP buffers is too small, the receive window buffer is frequently overrun, and the flow control mechanism stops the data transfer until the receive buffer is empty.
- Tune the JVM
- Tune transport channel services
The transport channel services manage client connections and I/O processing for HTTP and JMS requests. These I/O services are based on the non-blocking I/O (NIO) features that are available in Java. These services provide a highly scalable foundation to WebSphere Application Server request processing. Java NIO-based architecture has limitations in terms of performance, scalability, and user usability. Therefore, integration of true asynchronous I/O is implemented. This implementation provides significant benefits in usability, reduces the complexity of I/O processing, and reduces that amount of performance tuning perform.
- Checking hardware configuration and settings
An optimal hardware configuration enables applications to get the greatest benefit from performance tuning. The hardware speed impacts all types of applications and is critical to overall performance.
- Tune operating systems
We can tune the operating system to optimize the performance of WAS.
- Tune on z/OS
Learn about tips to tune the z/OS operating system to optimize WebSphere Application Server performance.
- Tune web servers for IBM i
The product provides plug-ins for several web server brands and versions. If we are running the web server on a non-IBM i platform, see the product documentation for performance tuning information.
- Tune web servers
WebSphere Application Server provides plug-ins for several web server brands and versions. Each web server operating system combination has specific tuning parameters that affect the application performance.
- Tune storage
Running application servers on the z/OS system often requires a high amount of virtual storage. Because virtual storage uses real storage as backup, real storage usage might also be high. Therefore make sure that we do not underestimate the amount of virtual storage that you allocate to running the application servers.
- Use Collection Services performance data
Collection Services, a component of WAS for IBM i, collects Performance Monitoring Infrastructure (PMI) data for stand-alone application servers. This PMI data is collected at specified intervals, providing a snapshot of activity during that time.
- Use PassByReference optimization in SCA applications
Support exists for the @AllowsPassByReference annotation, which can be used to bypass marshaling and unmarshaling when a client invokes a service located in the same JVM over a remote interface.
- Tune the application server using pre-defined tuning templates
We can 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 WAS_HOME\scriptLibraries\perfTuning\V70\ directory. The path for the script files is wsadmin -f <WAS_HOME>\bin\applyPerfTuningTemplate.py.
Related tasks
Tune on z/OS Use the Performance and Diagnostic Advisor Use the performance advisor in Tivoli Performance Viewer Tune security configurations Troubleshooting performance problems Tune application servers
Tune IBM i systems Task overview: Use the dynamic cache service to improve performance Configure transport chains
DB2 Universal Database performance tips DB2 tuning parameters Secure Sockets Layer performance tips EJB method Invocation Queuing Performance: Resources for learning
Related information:
WebSphere Application Server Performance