[AIX Solaris HP-UX Linux Windows]

Tuning Solaris systems

The following tuning parameters are specific to the Solaris operating system. Because the Solaris operating system is not a WebSphere® Application Server product, be aware that it can change and results vary.

About this task

On the Solaris operating system, WebSphere Application Server runs on the Oracle Hotspot Java™ virtual machine (JVM). It is important to use the correct tuning parameters with the Oracle JVM to utilize its performance optimizing features. See the JVM tuning information. Also, consider the following parameters that are specific to the Solaris operating system to ensure that WebSphere Application Server has enough resources.

Procedure

Configure the following settings or variables according to your tuning needs:
Solaris file descriptors (ulimit)
Specifies the maximum number of open files supported. If the value of this parameter is too low, a Too many files open error is displayed in the WebSphere Application Server stderr.log file.
How to view or set
Check the UNIX reference pages on the file descriptor limits for parameters and commands used. For the KornShell (ksh), the ulimit -n command can be used to set the desired file descriptor value and the ulimit -a command to display all current ulimit settings in place.
Default value
1024
Recommended value
10000
Solaris TCP_TIME_WAIT_INTERVAL
Notifies TCP/IP on how long to keep the connection control blocks closed. After the applications complete the TCP/IP connection, the control blocks are kept for the specified time. When high connection rates occur, a large backlog of the TCP/IP connections accumulates and can slow server performance. The server can stall during certain peak periods. If the server stalls, the netstat command shows that many of the sockets that are opened to the HTTP server are in the CLOSE_WAIT or FIN_WAIT_2 state. Visible delays can occur for up to four minutes, during which time the server does not send any responses, but CPU utilization stays high, with all of the activities in system processes.
How to view or set
Use the get command to determine the current interval and the set command to specify an interval of 60 seconds. For example:
ndd -get /dev/tcp tcp_time_wait_interval     
ndd -set /dev/tcp tcp_time_wait_interval 60000
Default value
The default time wait interval for a Solaris operating system is 240000 milliseconds, which is equal to 4 minutes.
Recommended value
60000 milliseconds
Solaris TCP_FIN_WAIT_2_FLUSH_INTERVAL
Specifies the timer interval prohibiting a connection in the FIN_WAIT_2 state to remain in that state. When high connection rates occur, a large backlog of TCP/IP connections accumulates and can slow server performance. The server can stall during peak periods. If the server stalls, using the netstat command shows that many of the sockets opened to the HTTP server are in the CLOSE_WAIT or FIN_WAIT_2 state. Visible delays can occur for up to four minutes, during which time the server does not send any responses, but CPU utilization stays high, with all of the activity in system processes.
How to view or set
Use the get command to determine the current interval and the set command to specify an interval of 67.5 seconds. For example,
ndd -get /dev/tcp tcp_fin_wait_2_flush_interval
ndd -set /dev/tcp tcp_fin_wait_2_flush_interval 67500
Default value
675000 milliseconds
Recommended value
675000 milliseconds
Solaris TCP_KEEPALIVE_INTERVAL
The keepAlive packet ensures that a connection stays in an active and established state
How to view or set
Use the ndd command to determine the current value or to set the value. For example:
ndd ndd -set /dev/tcp tcp_keepalive_interval 15000 
Default value
7200000 milliseconds
Recommended value
15000 milliseconds milliseconds
Solaris kernel semsys:seminfo_semopm
An entry in the /etc/system file can exist for this tuning parameter. This number is the maximum value of System V semaphore operations per semop call. The default value for this option is too low for highly concurrent systems.
How to view or set
Set this parameter through the /etc/system entry: semsys:seminfo_semopm = 200
Default value
none
Recommended value
200 milliseconds (100 milliseconds is appropriate for most systems, but 200 might be needed in some cases.)
Note: This parameter has been superseded on the Solaris 10 and later operating system by the process.max-sem-ops resource control, which now has a default value of 512 per process. This default is sufficient for most applications. For more information on Solaris 10 and later releases parameters and resource controls, search for "tunable parameters" and "resource control" on the Sun Microsystems website at: http://docs.sun.com.
Connection backlog
Change the following parameter when a high rate of incoming connection requests result in connection failures:
ndd -get /dev/tcp tcp_conn_req_max_q 
ndd -set /dev/tcp tcp_conn_req_max_q 8000
Default value
For Solaris 8, the default value is 128.
For Solaris 9 and later releases, the default value is 128.
Recommended value:
8000
Large page support
Using large pages can reduce the CPU overhead of managing a large JVM heap.
With Solaris 9 and later releases, large page support is provided by default. No operating system or JVM parameters are necessary to make use of large pages for the JVM heap.

Results

This tuning procedure improves the performance of WebSphere Application Server on the Solaris operating system.

What to do next

After tuning your operating system for performance, consult other tuning topics for various tuning tips.