This topic describes how to tune the AIX® operating system to optimize the performance
of your WebSphere® Application Server.
About this task
There are a number of configuration changes and variables you can
set to tune the performance of Websphere to suit your needs. Because the AIX operating
system is not a WebSphere Application Server product, be aware that it can change and results can vary.
Procedure
Change the following configuration settings or variables according
to your needs:
- TCP_TIMEWAIT
- Description: Determines the time that must elapse before TCP/IP
can release a closed connection and reuse its resources. This interval between
closure and release is known as the TIME_WAIT state or twice the maximum segment
lifetime (2MSL) state. During this time, reopening the connection to the client
and server costs less than establishing a new connection. By reducing the
value of this entry, TCP/IP can release closed connections faster, providing
more resources for new connections. Adjust this parameter, if the running
application requires rapid release or the creation of new connections, or
if a low throughput occurs due to many connections sitting in the TIME_WAIT
state.
- How to view or set:
Issue the following command to set TCP_TIMEWAIT
state to 15 seconds:
/usr/sbin/no –o tcp_timewait =1
- AIX operating
systems with DB2®
- Description: Separating your DB2 log files from the physical database
files can boost performance. You can also separate the log and the database
files from the drive that contains the Journaled File System (JFS) service. AIX uses
specific volume groups and file systems for the JFS logging.
- How to view or set: Use the AIX filemon utility to view all the file
system input and output and to strategically select the file system for the DB2 log
files. Set the DB2 log
location according to the DB2 logging information..
- Default value: The default location for the DB2 log files
is often the same disk drive where the database tables are stored.
- Recommended value: Move the files to a disk that is separate from
the DB2 data
and has the minimum input or output activity.
- AIX file
descriptors (ulimit)
- Description: Specifies the various restrictions on resource usage
on the user account. The ulimit -a command displays all
the ulimit limits. The ulimit -a command specifies only
the number of open files that are permitted. The default number of open files
setting (2000) is typically sufficient for most applications. If the value
set for this parameter is too low, errors might occur when opening files or
establishing connections. Because this value limits the number of file descriptors
that a server process might open, a value that is too low prevents optimum
performance.
- How to view or set: Perform the following steps to change the open
file limit to 10,000 files:
- Open the command window.
- Edit the /etc/security/limits file. Add the following
lines to the user account that the WebSphere Application Server process
runs on:
nofiles = 10000
nofiles_hard = 10000
- Save the changes.
- Restart your AIX system.
- To verify the result, type the ulimit -a command on
the command line. For example, type # ulimit -a.
- Default value: For the AIX operating system, the default setting
is 2000.
- Recommended value: The value is application dependent and applies
exclusively to application program data and the application stack.
Increasing
the ulimit file descriptor limits might improve performance. Increasing some
of the other limits might be needed depending on your application. Any changes
to the data or stack ulimits should ensure that data+stack < 256MB (for
32-bit WebSphere Application Server only).
It is recommended that you
change the ulimit for data to "unlimited".
- AIX TCP_KEEPIDLE
- Description: The keepAlive packet ensures that a connection stays
in an active/ESTABLISHED state.
- How to view or set: Use the no command to determine the
current value or to set the value. The change is effective until the next
time you restart the machine. To permanently change the value, add the no command
to the /etc/rc.net directory. For example:
no -o tcp_keepidle=600
- Default value: 14400 half seconds (2 hours).
- Recommended value: 600 half seconds (5 minutes).
- TCP_KEEPINTVL
- Description: Specifies the interval between packets that are sent
to validate the connection.
- How to view or set: Use the following command to set the value
to 5 seconds:
no -o tcp_keepintvl=10
- Default value: 150(1/2 seconds)
- Recommended value: 10(1/2 seconds)
- TCP_KEEPINIT
- Description: Specifies the initial timeout value for TCP connection.
- How to view or set: Use the following command to set the value
to 20 seconds:
no -o tcp_keepinit=40
- Default value: 150(1/2 seconds)
- Recommended value: 40(1/2 seconds)
Allocating large pages (16 MB) for Java™ virtual
machines heap Some applications require a very large heap for optimal
performance. Reduce the CPU overhead of managing a large heap by using large
page support that is provided by the CPU and the operating system. The following
steps allocate 4 GB of RAM as large pages (16 MB):
- As root user, run the following commands to reserve 4 GB of large page:
vmo -r -o lgpg_regions=256 -o lgpg_size=16777216
bosboot -ad /dev/ipldevice
reboot -q
- After reboot, run the following command to enable large page support on
the AIX operating
system:
vmo -p -o v_pinshm=1
- As root user, add the following capabilities for the user:
chuser capabilities=CAP_BYPASS_RAC_VMM,CAP_PROPAGATE $USER
- Add the -Xlp Java options to the Java command.
- Click Servers > Server TypesWebSphere
application servers > server_name.
- Under Server Infrastructure, click Java
and Process Management > Process definition > Java
Virtual Machine.
- In the Generic JVM Argument field, add -Xlp.
- Add the EXTSHM custom property and set to OFF.
- Click Servers > Server TypesWebSphere
application servers > server_name.
- Under Server Infrastructure, click Java
and Process Management > Process definition > Environment
Entries > New.
- In the Name field, enter EXTSHM.
- In the Value field, enter OFF.
- Validate large page support is used with the following command:
vmstat -l 1
Note: The
"alp" column is non-zero when the application is running.
There are several concerns when enabling large pages, which can
cause serious events to occur on the machine when large pages are enabled.
For more information on AIX large pages, see the "Considerations for using large
pages" section at the following address: http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.prftungd/doc/prftungd/large_page_ovw.htm.
If you do not want to use the large pages option, there is also a
medium page option. The medium page size option, which is similar, and has
close to the same performance gains as large pages. However, it does not involve
the problems of reserving physical memory for a specific user or process.
For more information, read the Tuning Java virtual machines information.
- Other AIX information
Consider
the other AIX operating
system settings that are not within the scope of this document. You can adjust
the following additional settings:
- Adapter transmit and receive queue
- TCP/IP socket buffer
- IP protocol mbuf pool performance
- Update file descriptors
- Update the scheduler
For more information about AIX operating systems, see the performance:
resources for learning information.
Results
This tuning procedure improves performance of WebSphere Application Server on the AIX operating
system.
What to do next
After tuning your operating system for performance, consult the other
tuning topics for various tuning tips.