Download IBM WebSphere Portal Version 5.1 Tuning Guide

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Extensible Storage Engine wikipedia , lookup

Open Database Connectivity wikipedia , lookup

Concurrency control wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Database wikipedia , lookup

Ingres (database) wikipedia , lookup

Relational model wikipedia , lookup

Oracle Database wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Database model wikipedia , lookup

Clusterpoint wikipedia , lookup

ContactPoint wikipedia , lookup

Transcript
WebSphere Portal Version 5.1 Tuning Guide
JANUARY 2005
IBM
WebSphere Portal
Version 5.1
Tuning Guide
Document version 2.0
IBM WebSphere Portal Performance Team
Contents
PERFORMANCE TUNING THE ENVIRONMENT ............................................................................................................................... 5
Understanding the Environment ........................................................................................................................................... 5
Application Server Tuning..................................................................................................................................................... 5
Additional notes: JVM max Heap Size Limits............................................................................................................... 10
Additional notes: AIX.................................................................................................................................................... 11
Application Server Cloning........................................................................................................................................... 12
Database Server Tuning..................................................................................................................................................... 12
IBM DB2 Enterprise Edition Database Parameter Tuning ........................................................................................... 12
Oracle Enterprise Edition Database Parameter Tuning ............................................................................................... 14
Microsoft Sql Server Database .................................................................................................................................... 16
Other Database Considerations................................................................................................................................... 17
Directory Server Tuning...................................................................................................................................................... 17
Web Server Tuning Tips ..................................................................................................................................................... 18
Security ............................................................................................................................................................................................... 19
Security Filters ............................................................................................................................................................. 19
Dereferencing Aliases .................................................................................................................................................. 19
Operating System Specific ................................................................................................................................................. 19
Network Tuning................................................................................................................................................................... 20
Solaris Networking ....................................................................................................................................................... 20
AIX Networking ............................................................................................................................................................ 22
Windows Networking.................................................................................................................................................... 22
WebSphere Portal Service Properties................................................................................................................................ 23
Appendix A.
References ................................................................................................................................................................ 24
Appendix B.
Additional Performance Tuning Guides..................................................................................................................... 25
Figure
Table 1 WebSphere Portal Service Properties
23
2
WEBSPHERE PORT AL V5.1 TUNING GUIDE
ABOUT THIS DOCUMENT
The purpose of this white paper is to provide guidelines for both capacity planning, base
parameter and application tuning for IBM WebSphere Portal for Multiplatforms V5.1.
Tuning and capacity are affected by many factors, including the workload scenario and the
performance test environment. For tuning, the objective of this paper is not to recommend
the use of the specific set of parameters, but to report the parameters that made the most
performance impact in our testing. When tuning your individual systems, begin with a
baseline test and monitor the performance statistics to determine if any parameters should
be added or changed.
This white paper provides:
Performance tuning hints for configuring resources to scale WebSphere Portal and
required backends to achieve optimal performance.
3
WEBSPHERE PORT AL V5.1 TUNING GUIDE
4
WEBSPHERE PORT AL V5.1 TUNING GUIDE
1
PERFORMANCE TUNING THE
ENVIRONMENT
Understanding the Environment
WebSphere Portal V5.1 can make use of several additional servers to provide its
functionality. In our test environment, there is a database server and directory server in
addition to the portal server itself.
For maximum performance, the different backend servers should reside on separate
systems from the WebSphere Portal system. The primary benefit of having such a
configuration is to avoid resource contention from multiple servers residing on a single
server. Backend servers sharing the WebSphere Portal application resources would
impact the amount of throughput we could achieve.
Backend servers for WebSphere Portal in our configuration are:
1.
a remote database server for the WebSphere Portal database (WPS).
2.
a remote database server for the session database if Workload Management is
used.
3.
a remote LDAP directory server.
Application Server Tuning
Because of its close relationship with the base WebSphere Application Server product,
tuning the WebSphere Portal application server primarily entails tuning WebSphere
Application Server.
This section will not cover every possible tuning parameter available for WebSphere
Application Server. Instead, we will present recommendations stemming from performance
5
WEBSPHERE PORT AL V5.1 TUNING GUIDE
impacts experienced by our team. For more details on tuning WebSphere Application
Server, see the Tuning Section of the InfoCenter located at
http://www-3.ibm.com/software/webservers/appserv/was/library/
The following are settings based on our experience with the Benchmark Work Load:
CROSS-PLATFORM TUNING PARAMETERS: HIGH PRIORITY
Parameter
Setting
Additional Details
Java Virtual
Machine heap
size
1 GByte or
more
Set the JVM heap size larger than 256MB. We used 1.4GB on
Windows, and 1.5GB on AIX and Solaris.
Also, remember that the value for the JVM heapsize is directly
related to the amount of physical memory for the system.
Never set the JVM heap size larger than the physical memory
on the system.
How-To Set Parameter:
Logon to WebSphere Administrative Console
Servers Application Servers WebSphere Portal
Process Definition Java Virtual Machine
- Initial Heap Size
- Maximum Heap Size
*See Additional Notes: JVM Max Heap Size Limits
Session
timeout
The default value of Session Timeout is 30 minutes. Reducing
this value to a lower number can help reduce memory
consumption requirements, allowing a higher user load to be
sustained for longer periods of time. Reducing the value too low
can interfere with the user experience.
10 minutes
How-To Set Parameter:
Logon to WebSphere Administrative Console
Servers Application Servers WebSphere Portal
Web Container Session Management
Session Timeout
- Set Timeout
6
WEBSPHERE PORT AL V5.1 TUNING GUIDE
Data source
connection
pool size for
WPS database
For Windows the minimum pool size was set to 10 and the
maximum to 50.
50 max
For both Solaris and AIX the mimimum and maximum were set
to 50.
How-To Set Parameter:
Logon to WebSphere Administrative Console
Resources JDBC Providers
Data Sources wpsdbDS
- Minimum connections
- Maximum connections
wpsdbJDBC
Connection Pools
ADDITIONAL CROSS-PLATFORM TUNING PARAMETERS
Class Garbage
Collection
Using the “-Xnoclassgc” parameter will allow for more class
reuse, thus causing less garbage collections to occur.
-Xnoclassgc
How-To Set Parameter:
Logon to WebSphere Administrative Console
Servlet engine
thread pool
size
Servers Application Servers WebSphere Portal
Process Definition Java Virtual Machine
Generic JVM arguments
- {add} -Xnoclassgc
For Windows the minimum thread pool was set to 10 and the
maximum to 50.
50 max
For both Solaris and AIX 70 was used for both the minimum
and maximum settings. Ideally, set this value and monitor the
results using the Tivoli Performance Viewer. Increase this value
if all the servlet threads are busy most of the time.
How-To Set Parameter:
Logon to WebSphere Administrative Console
Servers Application Servers WebSphere Portal
Web Container Thread Pool
- Minimum size threads
- Maximum size threads
7
WEBSPHERE PORT AL V5.1 TUNING GUIDE
Statement
cache size for
WPS database
Increase the Statement Cache Size used by the wpsdbDS data
source. We set this value to 150. The statement cache can be
monitored using the Tivoli Performance Viewer, to check if it is
large enough.
150
How-To Set Parameter:
Logon to WebSphere Administrative Console
Resources JDBC Providers
Data Sources wpsdbDS
- Statement Cache Size
wpsdbJDBC
For Windows, Solaris and AIX the minimum pool size was set to
1 and the maximum to 10, the default values.
1 or more
Data source
connection
pool size for
WMM database
Note that in our tests, we were using an LDAP server without a
lookaside database. In configurations using a database user
registry or a lookaside database, this connection pool size may
need to be increased.
How-To Set Parameter:
Logon to WebSphere Administrative Console
Resources JDBC Providers wpsdbJDBC
Data Sources wmmdbDS Connection Pools
- Minimum connections
- Maximum connections
We set this value to 50 for windows and to 10 for Solaris and
for AIX. The statement cache can be monitored using the Tivoli
Performance Viewer, to check if it is large enough.
10 or more
Statement
cache size for
WMM database
Note that in our tests, we were using an LDAP server without a
lookaside database. In configurations using a database user
registry or a lookaside database, this prepared statement cache
size may need to be increased.
How-To Set Parameter:
Logon to WebSphere Administrative Console
Resources JDBC Providers
Data Sources wmmdbDS
- Statement Cache Size
8
WEBSPHERE PORT AL V5.1 TUNING GUIDE
wpsdbJDBC
SOLARIS-SPECIFIC TUNING PARAMETERS
The “server” mode offers substantially higher throughput than
the “client” mode.
HotSpot option -server
How-To Set Parameter:
Logon to WebSphere Administrative Console
Servers Application Servers WebSphere Portal
Process Definition Java Virtual Machine
Generic JVM arguments
- {add} -server
Garbage
collection
tuning:
NewSize and
MaxNewSize
To help optimize Java garbage collection duration and
frequency, we set the parameters -XX:NewSize and XX:MaxNewSize to 200 MB.
200M
How-To Set Parameter:
Logon to WebSphere Administrative Console
Servers Application Servers WebSphere Portal
Process Definition Java Virtual Machine
Generic JVM arguments
- {add} -XX:NewSize=200M
- {add} -XX:MaxNewSize=200M
Garbage
collection
tuning:
SurvivorRatio
To help optimize Java garbage collection duration and
frequency, we set the parameter -XX:SurvivorRatio to 12.
12
How-To Set Parameter:
Logon to WebSphere Administrative Console
Servers Application Servers WebSphere Portal
Process Definition Java Virtual Machine
Generic JVM arguments
- {add} -XX:SurvivorRatio=12
To help garbage collection concurrently with the execution of
the application.
Garbage
Collection
Tuning:
Concurrent
Low Pause
Collection
How-To Set Parameter:
Logon to WebSphere Administrative Console
Servers Application Servers WebSphere Portal
Process Definition Java Virtual Machine
Generic JVM arguments
- {add} -XX:UseConcMarkSweepGC
9
WEBSPHERE PORT AL V5.1 TUNING GUIDE
AIX-SPECIFIC TUNING PARAMETERS
How-To Set Parameter:
Logon to WebSphere Administrative Console
JIT Compiler
Option
Servers -> WPS -> Process Definition -> Environment
Entries->
Remove the following parameter from the list of environment
settings:
(JITC_COMPILEOPT=NCHA{db2j/*}{*})
This setting disables an optimization made by the JVM’s
just-in-time (JIT) compiler. This reduces performance of all
code running in the application server.
This setting is not needed on systems using a database other
than Cloudscape. Since we used other databases in our
performance runs, we removed this setting.
Changes the garbage collection policy used by the JVM storage
manager.
-Xgcpolicy:
subpool
Garbage
Collection
Policy
How-To Set Parameter:
Logon to WebSphere Administrative Console
Servers Application Servers WebSphere Portal
Process Definition Java Virtual Machine
Generic JVM arguments
- {add} -Xgcpolicy:subpool
A D D I T I O N A L
N O T E S :
J V M
M A X
H E A P
S I Z E
L I M I T S
When setting the heap size for an application server, keep the following in mind:
• Make sure that the system has enough physical memory for all of the processes
to fit into physical memory, plus enough for the operating system. When more
memory is allocated than the physical memory in the system, paging will occur,
and this can result in very poor performance.
• While we set the minimum and maximum heap sizes to the same values, this
may not be the best choice for production systems which are running on IBM
JDKs. In our measurement runs, the system is under load for a relatively short
time (around 3 hours), and it is running with portlets which do not have large
memory requirements. When using portlets which will have larger memory
requirements, or for continuous operation, it may be possible to reduce heap
fragmentation by setting the initial heapsize to 128 megabytes.
10
WEBSPHERE PORT AL V5.1 TUNING GUIDE
•
•
•
After doing any tuning of heap sizes, monitor the system to make sure that
paging is not occurring. As mentioned above, paging can cause poor
performance.
32-bit operating systems have an address space limit of 4GBytes, regardless of
the amount of physical memory in the system. This limits the maximum size of
each individual process in the system. In addition, some operating systems
restrict the size of processes to be even less than this limit:
o Many versions of Windows limit processes to 2GBytes in size; you can
find more information at
http://support.microsoft.com/default.aspx?scid=kb;en-us;555223.
o Many 32-bit Linux kernels default to a 2GByte limit for processes.
The address space limit further restricts the size of the JVM process. If the
process grows larger than the limit imposed by the operating system, it may
terminate unexpectedly.
Our experience on Windows led us to choose a heap size of 1430Mbytes. The heap
size may need to be smaller than this, depending on your application; for example,
applications which use large native code libraries may need smaller JVM heap sizes to
stay under that limit. For more information, see the WebSphere Application Server
information center.
A D D I T I O N A L
N O T E S :
A I X
By default, the application server will not start on AIX with a heap size larger than 1GB. To
allow a larger JVM heap size, set the environment variable
LDR_CNTRL=MAXDATA=0xn0000000
where n is the number of segments you need. For a 2GB heap, use n=2. For 1792MB, use
n = 3 and so on. For example, for a 1.5 GB heap:
LDR_CNTRL=MAXDATA=0x40000000
How-To Set Parameter:
Logon to WebSphere Administrative Console
Servers Application Servers WebSphere Portal
Entries New
name: LDR_CNTRL
value: MAXDATA=0x40000000
11
WEBSPHERE PORT AL V5.1 TUNING GUIDE
Process Definition
Environment
A P P L I C A T I O N
S E R V E R
C L O N I N G
One rule of thumb is not to just blindly add clones onto the environment. The best way is to
begin by performance testing with one instance of the application server and then measure
the throughput and system’s resource utilization. For configuring a vertical clone, if the
CPU is utilized 85% (or more), it is better not to add an additional clone. Thus, it is hard to
pinpoint the number of horizontal or vertical clones any one environment will need without
doing extensive tests. Overall, workload management does indeed provide a huge impact
in trying to meet your overall performance objectives.
Database Server Tuning
In WebSphere Portal V5.1, several backend database servers are required for core
functionality. These servers include database server for the application databases and a
database server for the user registry. In our lab, another database server we rely on is a
Lightweight Directory Access Protocol (LDAP) user repository.
I B M
D B 2
E N T E R P R I S E
E D I T I O N
D A T A B A S E
P A R A M E T E R
T U N I N G
For our testing we used IBM DB2 Enterprise Edition V8.1 Fixpack 6 as our database server
for the AIX and Windows platforms. Here are the specified parameters and values used in
our environment for the WPS database
To update a configuration parameter, issue the command.
db2 update db config for <database alias> using <db parameter> <value>
DB2 Tuning Parameter
Windows
AIX
Maxappls
75
75
buffpage
2500
2500
dbheap
4000
4000
12
WEBSPHERE PORT AL V5.1 TUNING GUIDE
sortheap
4000
4000
maxlocks
40
40
num_iocleaners
7
11
num_ioservers
7
11
DB2 Tuning Parameters Specified in the WebSphere Portal 5.1 InfoCenter
applheapsz
16384
app_ctl_heap-sz
8192
stmtheap
60000
locklist
400
indexrec
RESTART
logfilsz
1000
logprimary
12
logsecond
10
DB2_RR_TO_RS
YES
DB2_INLIST_TO_NLJN=YES
YES
DB2_EVALUNCOMMITTED
YES
The JCR, Likeminds and Feedback databases use the tuning parameters specified in the
WebSphere Portal 5.1 InfoCenter with respect to creating and tuning databases. We
create but do not apply additional tuning to these databases in our testing, in an actual
production environment these databases should be tuned appropriately. Additional point of
consideration for database tuning include:
Reorganize the tables in the database periodically. When a row in a table is deleted,
the space occupied by the row is not necessarily reclaimed until The table is
reorganized.
Perform the following command on each database:
db2
reorgchk
update
statistics
on
table
all
This scans the tables and index space to gather information of space and efficiency
of indexes. This information is stored in the DB2 catalog and used by the SQL
optimizer to select access paths to data. The reorgchk utility then produces a report
recommending which tables should be reorganized. To reorganize any of the listed
13
WEBSPHERE PORT AL V5.1 TUNING GUIDE
tables,
issue
db2 reorg table <table-name>
the
command:
Ensure that the database server has an adequate number of disks. In our testing, we
used from 4 to 8 drives. Also, if possible, due to constant logging from the databases,
dedicate the database logs to a separate disk(s) from where the physical databases
reside.
Ensure that your parameter MaxAppls is greater than the total number of connections
for both the datasource and the session manager for each WebSphere Portal
application server clone.
For example, MaxAppls > total datasource connection
Use SMS table space type for DB2 temporary table spaces for systems which have
nested queries. Failure to follow this recommendation could result in excessive time
spent in buffer writes on UPDATES and other SQL requests which require nested
queries, as well as excessive disk utilization on the DB2 server.
O R A C L E
E N T E R P R I S E
E D I T I O N
D A T A B A S E
P A R A M E T E R
T U N I N G
For our Solaris testing, we used Oracle 9i as our database server for the WPS database.
A well designed database is prefered and can minimize future problems. Although the
Oracle Database Creation Assistant GUI provides a straightforward method to create
databases, Oracle recommands manual creation for larger databases. The Oracle
Administration Guide provides useful information related to database design. The following
were implemented in our Oracle database.
•
Use Oracle Managed File (OMF) feature to let Oracle database automatically
manage all file-related database operations. Use DB_CREATE_FILE_DEST and
DB_CREATE_ONLINE_LOG_DEST_n initialization parameters to enable OMF.
•
Use Automatic Undo Management feature to simplify the management of rollback or
undo changes to the database. If you use the rollback segment method, you are
said to be operating in the manual undo management, the UNDO tablespace
eliminates the complexities of managing rollback segment space. Specify
UNDO_MANAGEMENT=AUTO initialization parameter and UNDO TABLESPACE
in CREATE DATABASE statement to enable auto UNDO management.
•
Create Locally Managed tablespace which use bitmaps (instead of data dictionary)
to track used and free space for better performance. For SYSTEM tablespace,
specify EXTENT MANAGEMENT LOCAL in CREATE DATABASE statement. For
regular tablespace, set COMPATIBLE initialization parameter to 9.0.0 or higher.
•
Create TEMPORARY tablespace to improve the concurrence of sort operation.
Specify DEFAULT TEMPORARY TABLESPACE in CREATE DATABASE
statement.
14
WEBSPHERE PORT AL V5.1 TUNING GUIDE
For example: sqlplus> CREATE DATABASE wps51 DEFAULT TEMPORARY
TABLESPACE temptbs UNDO TABLESPACE undotbs NATIONAL CHARACTER
SET “UTF8” EXTENT MANAGEMENT LOCAL;
•
Create tablespace to use AUTO segment space management for simpler and more
efficient way of managing space. Specify SEGMENT SPACE MANAGEMENT
AUTO in create tablespace statement.
For example: sqlplus> CREATE TABLESPACE wps51tbs SEGMENT SPACE
MANAGEMENT AUTO;
Below is a list of tuning applied on the Oracle database server:
1. Here are the specified parameters and values used in our environment for the WPS
database. To set the following values , issue the command:
Alter system set
<db parameter>= <value> scope=spfile;
Oracle Tuning Parameters
processes
350
db_writer_processes
20
open_cursors
1600
db_cache_size
134217728
shared_pool_size
603979776
log_buffer
52428800
pga_aggregate_target
100663296
sga_max_size
1294962440
2. Set INITRANS to improve concurrent updates. We issue the commands prior to
populate data into database to ensure it is set for all blocks of the object. To set the
following values , issue the command:
Alter table
<wpsdbuser>.<db table> initrans <value>;
DB Table
Value
user_desc_state
20
15
WEBSPHERE PORT AL V5.1 TUNING GUIDE
user_desc
20
3. Because we ran Oracle on Solaris, we made the following kernel settings in /etc/system.
To update the values, , issue the command:
set
<parameter> = <value>
Parameter
Value
semsys:seminfo_semvmx
32767
shmsys:shminfo_shmmax
0xffffffff
shmsys:shminfo_shmseg
16
shmsys:shminfo_shmmni
300
semsys:seminfo_semmns
2048
semsys:seminfo_semmsl
1024
semsys:seminfo_semopm
200
Along with the above database parameter changes, there are several other consideration
needed for the database:
•
System statistics enable the optimizer to choose the most efficient plan. We run
the following command to gather system statistics periodically.
sqlplus> execute
dbms_stats.gather_database_stats(dbms_stats.auto_sample_siz
e,method_opt=>’FOR ALL INDEXED COLUMNS SIZE AUTO’,
cascase=>TRUE);
Ensure that the database server has an adequate number of disks. In our testing, we
used 10 drives. Also, if possible, due to constant logging from the databases, dedicate
the database logs to a separate disk(s) from where the physical databases reside.
M I C R O S O F T
S Q L
S E R V E R
D A T A B A S E
This report does not include measurements for WP5.1 with SQL Server, however our
expereince shows that the WebSphere Embedded JDBC Connect Driver provides better
performance behavior over Microsoft JDBC Driver SP3.
16
WEBSPHERE PORT AL V5.1 TUNING GUIDE
O T H E R
D A T A B A S E
C O N S I D E R A T I O N S
WebSphere Portal uses several databases to maintain information about portal visitors. The
size of the database tables does not remain constant in a running portal. For example, the
first time a user visits the portal, an entry is added to one of the database tables. When
places, pages, or access permissions are created, additional table entries are created. This
is done automatically on the user's behalf and is part of the normal portal server processing.
However, this can have an impact on performance. The performance of relational
databases will typically decline as tables grow unless the tables are periodically
reorganized.
So that the data shown in this paper is indicative of WebSphere Portal’s performance, and
not limited by database performance, the databases are preloaded before the performance
tests are run. This is done by running a LoadRunner script which logs in and then logs out
each user defined in our test environment. Then the portal application server is stopped and
all of the database tables are reorganized.
Any performance testing of WebSphere Portal which uses more than 1000 unique users
will need to follow a similar procedure to populate WebSphere Portal’s database tables, or
else sub-optimal performance will be seen.
Directory Server Tuning
All of our tests used IBM Directory Server 5.1, running on AIX, as the directory server. IBM
Directory Server also uses a database as its storage mechanism. This database is typically
located on the same system as the directory server. In our environment, the IBM DB2
Enterprise Server served as the storage for the user information. Below are the
configuration changes made in our environment:
DATABASE BUFFER POOL SIZES
IBMDEFAULTBP
AIX
29500
SOLARIS
59000
WIN
29500
LDAPBP
1230
2480
1230
150000
150000
150000
15
100
250000
250000
250000
15
7500
25000
25000
25000
15
100
4
4
This buffer pool uses a 4Kbyte
page size.
This buffer pool uses a 32Kbyte
page size.
IDS PARAMETERS
Ibm-slapdACLCacheSize
Ibm-lapdEntryCacheSize
Ibm-slapdFilterCacheSize
Ibm-slapdDbConnections
Ibm-slapdFilterCache BypassLimit
These five values are in the file
/usr/ldap/etc/ibmslapd.conf.
Restart the LDAP server after
changing these values.
AIX ENVIRONMENT VARIABLES
MALLOCMULTIHEAP
4
17
WEBSPHERE PORT AL V5.1 TUNING GUIDE
All of these values are set in the
SPINLOOPTIME
RDBM_CACHE_SIZE
Not Set
Not Set
Not Set
Not Set
650
128000
file /etc/environment.
Web Server Tuning Tips
We applied the following changes to the IBM HTTP 1.3.28.1 Server configuration file
Setting
AIX
Solaris
WIN
Discussion
KeepAliveTimeout
(seconds)
5
5
5
This value is less than the think time defined in our
scripts to ensure that testing is conservative. Each
user is assumed to open a new TCP connection
for each page view. However, in a live
environment, it can be helpful to increase the
Keep-Alive Timeout. A higher Keep-Alive Timeout
may increase contention for HTTP server
processes, if you are running out of HTTP
processes, decrease this value.
MaxClients
(AIX/Solaris) or
850
850
500
on
on
off
On the Windows platform the available TCP
sockets were exhausted, to resolve this problem
KeepAlive was disabled. An alternative solution
would be to move the HTTP server to a separate
system.
MaxKeepAliveRequests 0
0
0
This will allow an unlimited number of requests on
a single TCP connection.
MaxRequestsPerChild
0
0
0
StartServers
300
350
NA
This will make a large pool of servers ready at the
beginning of the test
Access logging
off
off
off
This was turned off by commenting out the
following
configuration
line:
CustomLog
/usr/HTTPServer/logs/access_log
common
ThreadsPerChild
(Windows)
KeepAlive
18
WEBSPHERE PORT AL V5.1 TUNING GUIDE
One option to reduce contention on the WebSphere Portal system is to install the web
server on a different system than portal application server. In this environment, where both
the web server and the database servers are remote, the portal server does not have to
contend with these processes for system resources.
We also enabled the server-status module so that we could monitor the number of running
and available Web server processes. This enables appropriate tuning of the MaxClients or
ThreadsPerChild parameters.
Security
S E C U R I T Y
F I L T E R S
The default filter generated by the WebSphere Portal installation uses the most
recommended filters for both IBM Directory Server and Lotus Domino Directory. If you are
using an LDAP directory different than the ones stated above or if you choose to modify the
default filters for IBM Directory Server or Domino directories, please consider the possible
performance impact when designing filters for your environment:
Group Filter: (&(cn=%v)(objectclass=groupOfUniqueNames)))
Group Member ID Map: ibm-allGroups:member;ibm-allGroups:uniqueMember
How-To Set Parameter:
Logon to WebSphere Administrative Console
Security User Registries LDAP
- Group Member ID Map
D E R E F E R E N C I N G
Advanced LDAP Settings
A L I A S E S
If your LDAP directory is not configured with any aliases to objects (versus direct access to
objects), it is beneficial to set a JNDI property to never dereference aliases. In the
“<was_root>/properties/jndi.properties,” file, where <was_root> represents the WebSphere
Application
Server
home,
set
the
parameter
java.naming.ldap.derefAliases=never. If jndi.properties file is not created, create
one with the above changes. In WP5.1, this is now a default setting
Operating System Specific
19
WEBSPHERE PORT AL V5.1 TUNING GUIDE
File Descriptors: For UNIX sytems. This specifies the number of open files permitted. If
this value is set too low, a memory allocation error will occur on AIX and a too
many files open will be logged to the to the stderr log file. Set this value higher than
the default system value. For large SMP machines with clones, set to unlimited. The file
descriptor variable must be set in the same window as the WebSphere adminserver is
started.
To display the current value, use the command ulimit –a
To change to a different value, use the command ulimit –n <new_value>
Kernel Parameters: For Solaris platform, we updated some of the operating system’s
kernel parameters.
•
semsys:seminfo_semume:
This
parameter
limits
the
max
semaphore undo entries per process.
We set the value to
1024.
•
semsys:seminfo_semopm: This specifies maximum number of
System V semaphore operations per semop(2) call. We set this
parameter to 16384.
These parameters can be added or updated in your /etc/system file. It is a good
practice to always backup the original copy prior to making changes.
Reboot the system for the changes to take effect.
Network Tuning
In any production environment, the network must be closely monitored to ensure that its
performance is acceptable and consistent. Based on our private switched 100MB Ethernet
on a 1GB backbone, we modified the following network parameters. Please note that, the
following is not to suggest that all network parameters are set to these values, but merely
make the reader aware that the network is also an entity in the performance environment
and bottleneck resolution process.
S O L A R I S
N E T W O R K I N G
For Solaris, use the ndd command to set the following TCP layer parameters. These will
take effect immediately, improving the network layer performance in high-volume
environments. To make these changes permanent, add these statements to the
/etc/rc.2/S69inet file. We used the following settings:
•
/usr/sbin/ndd -set /dev/tcp tcp_time_wait_interval 60000
•
/usr/sbin/ndd -set /dev/tcp tcp_conn_req_max_q0 16192
20
WEBSPHERE PORT AL V5.1 TUNING GUIDE
•
/usr/sbin/ndd -set /dev/tcp tcp_conn_req_max_q 16192
•
/usr/sbin/ndd -set /dev/tcp tcp_rexmit_interval_initial 500
•
/usr/sbin/ndd -set /dev/tcp tcp_rexmit_interval_min 200
•
/usr/sbin/ndd -set /dev/tcp tcp_rexmit_interval_max 4000
•
/usr/sbin/ndd -set /dev/tcp tcp_ip_abort_interval 60000
•
/usr/sbin/ndd -set /dev/tcp tcp_keepalive_interval 90000
•
/usr/sbin/ndd -set /dev/tcp tcp_smallest_anon_port 1024
•
/usr/sbin/ndd -set /dev/tcp tcp_slow_start_initial 2
•
/usr/sbin/ndd -set /dev/tcp tcp_deferred_ack_interval 50
•
/usr/sbin/ndd -set /dev/tcp tcp_xmit_hiwat 65536
•
/usr/sbin/ndd -set /dev/tcp tcp_recv_hiwat 65536
In addition the following network parameter tuning should be applied to improve
performance. In /etc/system the following three lines should be added on each of
the app servers and web servers.
Additional Network Tuning Parameters
rlim_fd_cur
rlim_fd_max
8192 Initial File Descriptor (default 256)
65536 Maximum File Descriptor (default
1024)
This parameter defines the maximum
number of open files allowed. Consider a
value of at least 2 * tcp_conn_req_max
or 2 * rlim_fd_cur if greater. The
predicate is required to be rlim_fd_cur <=
21
WEBSPHERE PORT AL V5.1 TUNING GUIDE
rlim_fd_max.
262144 (default 256)
This parameter helps quickly locate TCP
data structure in the kernel. If the default
is exceeded, a slow linear search is
required.
tcp_conn_hash_size
A I X
N E T W O R K I N G
For AIX, use the no command to set the following TCP layer parameters. These will take
effect immediately, improving the network layer performance in high volume environments.
•
/usr/sbin/no -o tcp_sendspace=65536
•
/usr/sbin/no -o tcp_recvspace=65536
•
/usr/sbin/no -o udp_sendspace=65536
•
/usr/sbin/no -o udp_recvspace=65536
•
/usr/sbin/no -o somaxconn=10000
•
/usr/sbin/no -o tcp_nodelayack=1
To make these changes permanent, add these statements to the /etc/rc.net file.
W I N D O W S
N E T W O R K I N G
The
following
registry
settings
were
made
in
the
section
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Paramet
ers
•
MaxFreeTcbs = dword:00011940
•
MaxHashTableSize = dword:0000ffff
•
MaxUserPort = dword:0000fffe
•
TcpTimedWaitDelay = dword:0000001e
22
WEBSPHERE PORT AL V5.1 TUNING GUIDE
WebSphere Portal Service Properties
The following lists several available WebSphere Portal parameters that should be modified
according to your expected workload and the dynamics of your environment. All property
files are located under <wproot>/shared/app/config/services directory.
Table 1 WebSphere Portal Service Properties
W E B S P H E R E
P O R T A L
S E R V I C E
P R O P E R T I E S
PARAMETER
Value we
used
DEFINITION
PROPERTY FILE NAME
public.expires (seconds)
3600
Determines cache expiration time for the
unauthenticated portal page.
NavigatorService.properties
public.reload (seconds)
3600
Determines cache expiration time for the
portal internal cache
NavigatorService.properties
remote.cache.expiration
(seconds)
28800
NavigatorService.properties
Access control cache
lifetimes (seconds)
3600
Determines cache expiration for caches
outside of portal server for authenticated as
well as for unauthenticated pages
This applies to all of the access control
caches. For additional details see the copy
of the sample cache file in Appendix E.
CacheManagerService.properties
In addition for all platforms the following parameters should be set in the file
<wproot>/wmm/wmm.xml
Parameter
Value
dirContextsMaxSize
20
dirContextsMinSize
5
dirContextTimeToLive
-1
23
WEBSPHERE PORT AL V5.1 TUNING GUIDE
Appendix A.
References
Oracle Corporation. Oracle Technology Network.
http://www.oracle.com/technology/index.html
IMPORTANT LINKS
Portal Infocenter
http://www-106.ibm.com/developerworks/websphere/zones/portal/proddoc.html
Tuning Section of the InfoCenter located at
http://www-3.ibm.com/software/webservers/appserv/was/library/
.
24
WEBSPHERE PORT AL V5.1 TUNING GUIDE
Appendix B.
Additional Performance Tuning Guides
For additional performance tuning documentation, review the following websites:
http://www.redbooks.ibm.com/redbooks/SG246153.html
http://www.ibm.com/software/webservers/appserv/ws_bestpractices.pdf
IBM WebSphere Portal Version 5.1 Benchmark and Tuning Guide for Document Manager
WebSphere Scalability: WLM and Clustering
http://www.redbooks.ibm.com/redbooks/SG246153.html
WebSphere Application Server Development Best Practices for Performance and
Scalability
http://www.ibm.com/software/webservers/appserv/ws_bestpractices.pdf
25
WEBSPHERE PORT AL V5.1 TUNING GUIDE
Thanks to the following team members of the WebSphere Portal Performance Team for
contributing to this white paper.
Mark Alkins, Manager
Ruthie Lyle, Report Coordinator
Andrew Citron,
Dionne White,
Laura Yen,
Martin Presler-Marshall,
Richard Hall,
Sharda Nandula,
Susan Hanis,
Terence Walker
26
WEBSPHERE PORT AL V5.1 TUNING GUIDE
®
 Copyright IBM Corporation 2005
IBM United States of America
Produced in the United States of America
All Rights Reserved
The e-business logo, the eServer logo, IBM, the IBM logo, IBM Directory Server, DB2, Lotus and WebSphere are trademarks of
International Business Machines Corporation in the United States, other countries or both.
Lotus and Domino, are trademarks of Lotus Development Corporation and/or IBM Corporation.
The following are trademarks of other companies:
Solaris, Java and all Java-based trademarks and logos are trademarks of Sun Microsystems, Inc. in the United States, other countries or
both.
Windows and Windows 2000 Server are trademarks of Microsoft Corporation in the United States and/or other countries
Oracle 9i and all Oracle-based trademarks and logos are trademarks of the Oracle Corporation in the United States, other countries or
both.
LoadRunner is a trademark of Mercury Interactive in the United States and/or other countries.
Other company, product and service names may be trademarks or service marks of others.
INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PAPER “AS IS” WITHOUT WARRANTY OF ANY KIND,
EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT,
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied
warranties in certain transactions, therefore, this statement may not apply to you.
Information in this paper as to the availability of products (including portlets) was believed accurate as of the time of publication. IBM
cannot guarantee that identified products (including portlets) will continue to be made available by their suppliers.
This information could include technical inaccuracies or typographical errors. Changes may be made periodically to the information
herein; these changes may be incorporated in subsequent versions of the paper. IBM may make improvements and/or changes in the
product(s) and/or the program(s) described in this paper at any time without notice.
Any references in this document to non-IBM web sites are provided for convenience only and do not in any manner serve as an
endorsement of those Web sites. The materials at those Web sites are not part of the materials for this IBM product and use of those Web
sites is at your own risk.
IBM may have patents or pending patent applications covering subject matter described in this document. The furnishing of this document
does not give you any license to these patents. You can send license inquiries, in writing, to:
IBM Director of Licensing
IBM Corporation
North Castle Drive
Armonk, NY, USA 10504-1785