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 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 > 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.