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 tuning parameters topic.
- 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. 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).
- 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 > 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 > 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, see the -Xlp64k option in the Tuning
Java virtual machines topic.
- 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 Performance: Resources for learning.
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.