WebSphere Application Server for z/OS V6.1 and V7

advertisement
Front cover
WebSphere Application
Server for z/OS V6.1 and
V7 Tuning Tips
Explore tuning tips for z/OS
Investigate tuning tips for
subsystems and resources
Tune WebSphere Application
Server run time
H. Michael Everett
ibm.com/redbooks
Redpaper
International Technical Support Organization
WebSphere Application Server for z/OS V6.1 and V7
Tuning Tips
December 2009
REDP-4628-00
Note: Before using this information and the product it supports, read the information in “Notices” on page v.
First Edition (December 2009)
This edition applies to WebSphere Application Server for z/OS versions 6.1 and 7.
© Copyright International Business Machines Corporation 2009. All rights reserved.
Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule
Contract with IBM Corp.
Contents
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .v
Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
The team who wrote this paper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Now, you can become a published author, too . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
Chapter 1. WebSphere Application Server for z/OS Version 7 tuning tips . . . . . . . . . . 1
1.1 Tuning z/OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.1 Tuning storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.2 Tuning the operating system. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.3 Tuning Language Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Tuning the subsystems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.1 Tuning IBM HTTP Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.2 Tuning DB2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.3 Tuning Resource Access Control Facility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.4 Tuning TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.5 Tuning MQ/Java Message Service (JMS). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.6 Tuning global resource serialization (GRS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.7 Tuning the Java virtual machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.8 Tuning CICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Tuning the WebSphere Application Server run time . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.1 Tuning application servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.2 Tuning the run time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Chapter 2. WebSphere Application Server for z/OS Version 6.1.x tuning tips . . . . . .
2.1 Tuning z/OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1 Tuning storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.2 Tuning the operating system. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Tuning the subsystems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1 Tuning IBM HTTP Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.2 Tuning DB2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.3 Tuning RACF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.4 Tuning TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.5 Tuning MQ/Java Message Service (JMS) connections . . . . . . . . . . . . . . . . . . . .
2.2.6 Tuning global resource serialization (GRS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.7 Tuning the Java virtual machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.8 Tuning CICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Tuning the WebSphere Application Server run time . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.1 Tuning application servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.2 Tuning the run time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
14
14
15
18
18
19
19
20
20
21
21
21
21
21
23
Chapter 3. One page performance overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IBM Redbooks publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Online resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How to get IBM Redbooks publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
© Copyright IBM Corp. 2009. All rights reserved.
29
29
29
30
iii
Help from IBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
iv
WebSphere Application Server for z/OS V6.1 and V7 Tuning Tips
Notices
This information was developed for products and services offered in the U.S.A.
IBM may not offer the products, services, or features discussed in this document in other countries. Consult
your local IBM representative for information on the products and services currently available in your area. Any
reference to an IBM product, program, or service is not intended to state or imply that only that IBM product,
program, or service may be used. Any functionally equivalent product, program, or service that does not
infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to
evaluate and verify the operation of any non-IBM product, program, or service.
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 10504-1785 U.S.A.
The following paragraph does not apply to the United Kingdom or any other country where such
provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION
PROVIDES THIS PUBLICATION "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.
This information could include technical inaccuracies or typographical errors. Changes are periodically made
to the information herein; these changes will be incorporated in new editions of the publication. IBM may make
improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time
without notice.
Any references in this information 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 use or distribute any of the information you supply in any way it believes appropriate without incurring
any obligation to you.
Information concerning non-IBM products was obtained from the suppliers of those products, their published
announcements or other publicly available sources. IBM has not tested those products and cannot confirm the
accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the
capabilities of non-IBM products should be addressed to the suppliers of those products.
This information contains examples of data and reports used in daily business operations. To illustrate them
as completely as possible, the examples include the names of individuals, companies, brands, and products.
All of these names are fictitious and any similarity to the names and addresses used by an actual business
enterprise is entirely coincidental.
COPYRIGHT LICENSE:
This information contains sample application programs in source language, which illustrate programming
techniques on various operating platforms. You may copy, modify, and distribute these sample programs in
any form without payment to IBM, for the purposes of developing, using, marketing or distributing application
programs conforming to the application programming interface for the operating platform for which the sample
programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore,
cannot guarantee or imply reliability, serviceability, or function of these programs.
© Copyright IBM Corp. 2009. All rights reserved.
v
Trademarks
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business Machines
Corporation in the United States, other countries, or both. These and other IBM trademarked terms are
marked on their first occurrence in this information with the appropriate symbol (® or ™), indicating US
registered or common law trademarks owned by IBM at the time this information was published. Such
trademarks may also be registered or common law trademarks in other countries. A current list of IBM
trademarks is available on the Web at http://www.ibm.com/legal/copytrade.shtml
The following terms are trademarks of the International Business Machines Corporation in the United States,
other countries, or both:
CICS®
DB2®
IBM®
IMS™
Language Environment®
OS/390®
RACF®
Redbooks®
Redbooks (logo)
WebSphere®
z/OS®
zSeries®
®
The following terms are trademarks of other companies:
Java, and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other
countries, or both.
Other company, product, or service names may be trademarks or service marks of others.
vi
WebSphere Application Server for z/OS V6.1 and V7 Tuning Tips
Preface
This IBM® Redpaper™ publication provides a quick handy reference or “cheat sheet” for
tuning WebSphere® Application Server for z/OS® V6.1 and V7. It focuses on three areas:
򐂰 Tuning z/OS
򐂰 Tuning the subsystems
򐂰 Tuning the WebSphere Application Server run time
This “cheat sheet” is designed to guide you toward an appropriate item to investigate. It is not
designed to cover all scenarios or provide detailed information. When possible, we include a
link to the information center to take you directly to the designated topic:
򐂰 For Version 7.0.x, see Chapter 1, “WebSphere Application Server for z/OS Version 7
tuning tips” on page 1.
򐂰 For Version 6.1.x, see Chapter 2, “WebSphere Application Server for z/OS Version 6.1.x
tuning tips” on page 13.
򐂰 For a quick summary to use as a handy reference, print Chapter 3, “One page
performance overview” on page 25.
This paper is intended for individuals who want to tune the performance of WebSphere
Application Server for z/OS V6.1 or V7.
The team who wrote this paper
This paper was produced by scores of WebSphere on z/OS specialists from around the
world.
H. Michael Everett is a WebSphere Integration Team Lead for a
geographically dispersed team that concentrates on WebSphere and its
associated products on System z. Michael is based in Pittsburgh,
Pennsylvania, and has held various positions around WebSphere, including
SWAT Team Lead, WebSphere and Java Level2 Support, and System
Verification Test. In addition to his duties as an IBM Advisory Software
Engineer, Michael is an adjunct professor of Computer Science at Indiana
University of PA.
Thanks to the following IBM teams for their contributions to this project:
򐂰 Washington Systems Center
򐂰 Silicon Valley Lab
򐂰 Software Services for WebSphere
򐂰 WebSphere Development, Test, and Support
Now, you can become a published author, too
Here is an opportunity to spotlight your skills, grow your career, and become a published
author - all at the same time. Join an ITSO residency project and help write a book in your
area of expertise, while honing your experience using leading-edge technologies. Your efforts
will help to increase product acceptance and client satisfaction, while you expand your
network of technical contacts and relationships. Residencies run from two to six weeks in
© Copyright IBM Corp. 2009. All rights reserved.
vii
length, and you can participate either in person or as a remote resident working from your
home base.
Find out more about the residency program, browse the residency index, and apply online at:
ibm.com/redbooks/residencies.html
Comments welcome
Your comments are important to us.
We want our papers to be as helpful as possible. Send us your comments about this paper or
other IBM Redbooks® publications in one of the following ways:
򐂰 Use the online Contact us review Redbooks form found at:
ibm.com/redbooks
򐂰 Send your comments in an e-mail to:
redbooks@us.ibm.com
򐂰 Mail your comments to:
IBM Corporation, International Technical Support Organization
Dept. HYTD Mail Station P099
2455 South Road
Poughkeepsie, NY 12601-5400
viii
WebSphere Application Server for z/OS V6.1 and V7 Tuning Tips
1
Chapter 1.
WebSphere Application Server
for z/OS Version 7 tuning tips
This chapter provides a “cheat sheet” that helps you with the performance tuning of
WebSphere Application Server V7.0 systems on z/OS. It provides three areas of
concentration:
򐂰 “Tuning z/OS” on page 2
򐂰 “Tuning the subsystems” on page 6
򐂰 “Tuning the WebSphere Application Server run time” on page 9
You can obtain further details about performance tuning in the WebSphere Application Server
Information Center at this Web site:
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/rprf_zostuneindex.html
Search any WebSphere Information Center with the search term: tuning index.
This cheat sheet is designed to guide you toward an appropriate item to investigate. It is not
designed to cover all scenarios. Whenever possible, we include a link to the information
center to take you directly to the designated topic.
© Copyright IBM Corp. 2009. All rights reserved.
1
1.1 Tuning z/OS
The following recommendations pertain to memory use by the z/OS operating system and
Java™.
1.1.1 Tuning storage
The following link takes you to the information center section pertaining to storage:
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/tprf_tunezstorage.html
Virtual storage
The following recommendations pertain to tuning z/OS virtual storage:
1. Use Resource Monitoring Facility (RMF) to determine if you need more paging space or
auxiliary storage. Also, try CCVUTILP options to get the CPU utilization by second.
2. The following settings might limit virtual storage:
a. The REGION setting in the JCL procedure.
Recommendation: Set REGION to 0M, which takes all of the region needed.
b. The IEFUSI exits limit virtual memory for running processes. Check for the exit to verify
that you are receiving the expected memory.
c. The MAXASSIZE setting in Unix Systems Services.
Recommendation: MAXASSIZE = 2147483647
d. The MEMLIMIT setting in SMFPRMxx or in the JCL procedure.
Real storage
The following recommendations pertain to tuning z/OS real storage:
1. Use a minimum of 384 MB real storage for the smallest configuration. Storage utilization
depends on the size of the Java virtual machine (JVM) heap. Having over 16 gigabytes of
real storage on the machine is not uncommon for Java applications.
2. To reduce paging, configure with 64-bit real storage and give the logical partition (LPAR)
more than 2 GB main storage. If 31-bit mode is your only option, dedicate more expanded
storage to reduce paging.
Java virtual machine (JVM) heap
The following recommendations pertain to tuning the JVM executing on the z/OS operating
system:
1. Set heap sizes using the administrative console by selecting these options:
Servers → Server Types → Application Servers → server_name → Server
Infrastructure → Java and Process Management → Process Definition →
address_space_type → Java Virtual Machine
2
WebSphere Application Server for z/OS V6.1 and V7 Tuning Tips
2. Garbage Collection (GC): It is normal to get allocation failures from the heap. When one
occurs, the JVM invokes GC to reclaim unused space in the heap. GC takes control from
your application; if it runs too often, you will see poor performance while your application
waits for GC to complete.
Recommendation: Adjust the heap size so that GC runs less than or equal to 5% of
the time.
We often recommend the following tool to analyze GC traces: IBM Pattern Modeling and
Analysis Tool for Java Garbage Collector:
http://www.alphaworks.ibm.com/tech/pmat
You can obtain this tool and other tools for analyzing GC traces at the IBM Support
Assistant Web site:
http://www.ibm.com/software/support/isa/
3. Use verbose GC tracing to determine how often GC runs and how much memory is being
taken by your application. Click Servers → Server Types → Application Servers →
server_name → Server Infrastructure → Java and Process Management → Process
Definition → address_space_type → Java Virtual Machine.
Select the Verbose GC check box. The output goes to SYSOUT in the Job Entry
Subsystem (JES) spool for the address space.
4. If the initial heap size setting is too large, GC causes a long delay when it finally starts
while it cleans the excessively large heap.
5. If you are already paging, increasing the heap size might worsen performance:
– You can monitor the heap by using the following modify command on the console:
F <control process name>,DISPLAY,JVMHEAP
– To see if your page disk is full, issue the command:
D ASM
6. By default, WebSphere Version 7 runs in 64-bit mode.
1.1.2 Tuning the operating system
The following recommendations pertain to tuning components that are built within the z/OS
operating system and those components executing on z/OS:
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/rprf_tunezopsys.html
Tuning component trace (CTRACE)
CTRACE is a low level trace within z/OS. Eliminate trace overhead by ensuring that all
components are either set to MIN or OFF. Issue the following console command to display
settings:
D TRACE,COMP=ALL
To change a component to its minimum tracing level, issue this command:
TRACE CT,OFF,COMP=<component identifier>
Chapter 1. WebSphere Application Server for z/OS Version 7 tuning tips
3
Tuning System Monitoring Facility
System Monitoring Facility (SMF) allows you to capture the internal workings of the z/OS
components and applications that execute on z/OS for analysis:
1. Review the SMFPRMxx member to ensure that you collect the minimum amount of data
that is required.
2. Use SMF 92 or 120 only for diagnostics. If you choose to run with 120 records, use the
server and container interval rather than server activity and container activity records.
Important: Using 120 records can cause significant performance degradation (be
careful).
The new 120 subtype 9 records can alleviate the performance degradation. Refer to
this Web site:
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.i
bm.websphere.zseries.doc/info/zseries/ae/rtrb_SMFsubtype9.html
3. Ensure that the SMF data that is being gathered for other subsystems is minimal and that
the SMF datasets are allocated optimally.
Tuning Resource Recovery Services
The following recommendations pertain to tuning Resource Recovery Services (RRS) within
the z//OS operating system. The following link takes you to the RRS configuration in the
information center:
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/rprf_tunezrrs.html
We recommend these tuning tips:
1. Use the coupling facility (CF) logging rather than DASD logging. If you must use DASD
logging, use the highest performing DASD possible and allocate logs with large control
interval (CI) sizes.
2. Monitoring SMF 88 records allows you to determine optimal logging.
3. Table 1-1 shows the recommended default settings for the LOGR policy.
Table 1-1 Recommended default settings for LOGR policy
Log stream
Initial size
Size
RM.DATA
1 MB
1 MB
MAIN.UR
5 MB
50 MB
DELAYED.UR
5 MB
50 MB
RESTART
1 MB
5 MB
ARCHIVE
5 MB
50 MB
4. Eliminate the ARCHIVE log by simply not creating an ARCHIVE log or deleting the
existing log. The ARCHIVE log logs the successful transactions. Eliminating it can
increase performance by decreasing I/O.
4
WebSphere Application Server for z/OS V6.1 and V7 Tuning Tips
Tuning z/OS UNIX System Services
The following link takes you to the information center section that pertains to z/OS UNIX
System Services:
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/rprf_tunezuss.html
We recommend these tuning tips:
1. Mount shared file systems as read-only in a sysplex.
2. Determine candidates for hierarchical file system (HFS) file caching by reviewing SMF 92
records. The initial cache size is set in the BPXPRMxx parmlib member.
3. Consider zSeries file system (zFS), which offers improved file system access. A
conversion tool converts existing HFS file systems to zFS file systems. See HFS to zFS
Migration Tool, REDP-4328, at this Web site:
http://www.redbooks.ibm.com/abstracts/REDP4328.html?Open
You can also obtain tips for tuning zFS in z/OS Distributed File Service zSeries File
System Implementation z/OS V1R10, SG24-6580, at this Web site:
http://www.redbooks.ibm.com/abstracts/sg246580.html?Open
4. Use the filecache command. You can cache high activity read-only files.
5. Allow the VMAX BPX parm to default to half of the physical memory. Shell utilities run
slowly if the VMAX BPX parm is too small.
Tuning Workload Manager (minimum required)
The following link takes you to the information center section that pertains to Workload
Manager (WLM):
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/rprf_tunezwlm.html
There is a general rule for WLM: WLM performs better with fewer service classes.
Currently, the following service classes exist:
򐂰
򐂰
򐂰
򐂰
򐂰
򐂰
򐂰
򐂰
8 IMPORTANCE 1 Velocity 65 service classes
9 IMPORTANCE 1 Velocity 55 service classes
4 IMPORTANCE 2 Velocity 55 service classes
4 IMPORTANCE 3 Velocity 25 service classes
11 IMPORTANCE 3 Velocity 45 service classes
6 IMPORTANCE 3 Velocity 55 service classes
7 IMPORTANCE 4 Velocity 25 service classes
4 IMPORTANCE 5 Velocity 10 service classes
Reducing the duplicates reduces the number of service classes, which improves WLM
performance by reducing the number of items on which WLM has to decide, thus, reducing
path length.
Chapter 1. WebSphere Application Server for z/OS Version 7 tuning tips
5
Next, we summarize the general rules for WebSphere and WLM on z/OS.
WebSphere has several types of work running in its address spaces. The work is classified by
using the classification rules under three workloads:
1. For STC workloads, the WebSphere address spaces’ control regions and servant regions
are given an aggressive Velocity goal equal to or slightly less than DB2®, IMS™, or MQ
and a goal equal to or slightly higher than CICS®.
2. For OMVS workloads, the WebSphere address spaces’ control regions and servant
regions are given an aggressive Velocity goal. Therefore, at startup, the BPXBATCH
facility that is used to run our applyPTF.sh script does not slow the startup of the server.
3. For CB workloads, the WebSphere servant regions are given a response time with a
percentile goal close to but not to exceed 90% of the work in .5 seconds. Even though
WebSphere servers are long running tasks and, typically, Velocity goals are used for long
running tasks, the actual transactions within WebSphere are extremely short-lived HTTP
type transactions. Response time with percentile goals is used for these short-lived
transactions.
The report classes associated with the classification rule for each workload are unique.
1.1.3 Tuning Language Environment
The following link takes you to the information center section pertaining to Language
Environment:
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/tprf_tunezleheap.html
We recommend these tuning tips:
1. For LPALSTxx, make sure that the Language Environment and C++ run times are in the
link pack area (LPA).
2. Do not use the following options in production: RPTSTG(ON), RPTOPTS(ON), or
HEAPCHK(ON).
1.2 Tuning the subsystems
The following information pertains to resources that run on z/OS but that are not necessarily
tied to the operating system itself.
1.2.1 Tuning IBM HTTP Server
The following link takes you to OS/390 e-business Infrastructure: IBM HTTP Server V5.1 for
OS/390, SG24-5603, which contains information pertaining to the HTTP server:
http://www.redbooks.ibm.com/abstracts/SG245603.html?Open
Check the HTTP Server plug-in properties to see which properties might affect workload
distribution and performance. For information, refer to this Web site:
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/uwsv_plugin_props.html
6
WebSphere Application Server for z/OS V6.1 and V7 Tuning Tips
1.2.2 Tuning DB2
The following recommendations can help you tune the database management system:
1. Run the Runstats utility periodically to gather the correct statistics.If you think that the
database is important to the business or that the database is large, this document stops at
150,000 rows (you can define the size). Run the utility at least once a week.
2. Ensure that the DB2 logs are large enough and that they are allocated on your fastest
volumes.
3. Develop a DB2 buffer pool strategy for your own data and application mix, and monitor it
regularly.
4. Monitor and adjust memory usage of the EDM pool, record identifier (RID) pool, and sort
pools for your workload.
5. Ensure a good physical database design by assigning tablespaces to tables based on the
size and usage of the tables. Avoid simple tablespaces.
6. Properly index tables to avoid table space scans and sorts.
7. Reorganize tables to maintain clustering and free space.
8. Use the latest Java Database Connectivity (JDBC) maintenance level. The JDBC level is
in the address space output.
9. Enable dynamic statement caching.
10.Turn off JDBC tracing.
11. Develop an SQL monitoring and tuning strategy to identify poorly performing SQL
statements.
1.2.3 Tuning Resource Access Control Facility
The following link takes you to the information center section that pertains to security:
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/tsec_tune.html
The following recommendations can help you tune Resource Access Control Facility
(RACF®):
1. If you do not use EJBROLES, do not enable the class in RACF.
2. If you do not need Java2 security, disable it.
3. RACLIST CBIND, EJBROLE, SERVER, and STARTED.
4. Use Peripheral Component Interconnect (PCI) Crypto cards to speed up the Secure
Sockets Layer (SSL).
5. Use virtual lookaside facility (VLF) to cache user identifiers (UIDs)/group identifiers (GIDs)
in the COFVLFxx parmlib member.
Chapter 1. WebSphere Application Server for z/OS Version 7 tuning tips
7
1.2.4 Tuning TCP/IP
The following recommendations can help you tune items that pertain to network
communication:
1. Set MAXSOCKETS and MAXFILEPROC high enough. Set both MAXSOCKETS and
MAXFILEPROC to 5000 for low throughput, 10000 for medium throughput, and 35000 for
high throughput environments. The D OMVS,L,PID=XXX command shows the limit,
current value, and high mark.
2. Specify NODELAYACKS for ports in the TCP/IP profile (especially for SSL ports).
3. Cache frequent lookups in the Domain Name System (DNS).
4. Increase send and receive buffers from 16 KB to 64 KB (it is reasonable for them to be
256 KB).
5. Increase the default listening backlog from 10 to 100 connections.
6. Reduce the finwait2 time from 600 to 60 seconds.
1.2.5 Tuning MQ/Java Message Service (JMS)
The following recommendations can help you tune the messaging system:
1. Turn off all tracing.
2. Use long-lived queue manager connections as opposed to create/destroy on every
message.
3. Use the bindings mode if the queue manager and the client are on the same z/OS image.
4. Use automated acknowledgments to reduce the message delay.
5. Use the same coded character set identifier (CCSID) to eliminate the translation between
the client and the queue manager.
6. Small messages are best. When a message must be larger than 1 MB, send it as one
message rather than breaking it into several messages.
7. Persistent transacted messages perform better than persisted non-transacted messages,
because the commit happens at the end of the transaction.
8. Nonpersistent, non-transactional messages perform best; use them whenever possible.
9. MQ application support filter (ASF) adds more overhead than non-ASF messaging.
10.Local queues that are defined as shared generally perform better than non-shared
queues.
11.Message-driven beans (MDBs) are asynchronous. Do not force serial mode
(maxsession=1). Set maxsession realistically to the number of concurrent sessions.
12.The timeout setting for the JMS server is the control_region_jms_request_timeout default
of 60 and a range from 0 - 2147040.
13.For full WebSphere MQ, optimize the number of concurrent queue manager connections:
CTHREAD is the maximum number of connections. CTHREAD must be greater than or
equal to the sum of IDBACK and IDFORE. It is normal for these values to be in the
hundreds.
14.Adjust the checkpoint interval and active log buffers. LOGLOAD controls the number of
records before a checkpoint. It is often 900000 to avoid frequent log switching. A
checkpoint must occur no more than every 5 or 6 minutes. WRTHRSH is the number of
active log buffers. We often use 200; if you see high I/O, you might want to increase it.
8
WebSphere Application Server for z/OS V6.1 and V7 Tuning Tips
1.2.6 Tuning global resource serialization (GRS)
The following tip can help you tune the sysplex communication. If you are not in a sysplex,
configure GRS=NONE. If you are in a sysplex, configure GRS=STAR.
1.2.7 Tuning the Java virtual machine
The following tips can help you tune the Java virtual machine (JVM):
1. Use the just-in-time (JIT) compiler; do not turn it off.
2. Do not use the debug dynamic link libraries (DLLs) in your libpath.
3. Point the classpath at only those classes that you need, with the most frequently
referenced classes near the beginning of the classpath.
4. Investigate the generic JVM arguments: -Xquickstart and –Xverify:none.
There must be a serious concern about server startup time to use these JVM arguments.
The -Xquickstart argument can cause degradation during run time in favor of a faster
startup time (be careful with these arguments).
5. Searching for missing classes can result in significant I/O and wasted time.
6. Review the Java 6.0 SDK Diagnostic Guide for WebSphere Application Server Version
7.0 at this Web site:
http://download.boulder.ibm.com/ibmdl/pub/software/dw/jdk/diagnosis/diag60.pdf
1.2.8 Tuning CICS
Use these tips to tune your existing transaction management system:
1. Set LGDFINT=5. The log defer interval of 5 milliseconds is the proven best interval in our
tests. Set it dynamically:
CEMT SET SYSTEM[LOGDEFER(value)]
2. Set RECEIVECOUNT to handle all concurrent external CICS interface (EXCI) pipes. The
default is 4.
1.3 Tuning the WebSphere Application Server run time
Next, we discuss tuning tips that pertain to the application server run time.
1.3.1 Tuning application servers
The following link takes you to the information center section that pertains to the application
server:
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/tprf_tunezconfig.html
Chapter 1. WebSphere Application Server for z/OS Version 7 tuning tips
9
Object Request Broker
The Object Request Broker (ORB) is internal to the application server:
1. Use pass by reference by setting the following variable. Click Servers → Server Types →
Application Servers → server_name → Container Services → ORB Service. Select
the pass by reference check box.
2. Investigate com.ibm.CORBA.FragmentSize in the information center.
XML parser definitions
You can add an XML parser to the run time, and it is not necessarily created by IBM. Refer to
the options for your XML parser to obtain tuning guidance. The following links might help:
򐂰 Improve performance in your XML applications, Part 1
http://www.ibm.com/developerworks/xml/library/x-perfap1.html
򐂰 Improve performance in your XML applications, Part 2
http://www.ibm.com/developerworks/xml/library/x-perfap2.html
XML parsers have properties. Investigate the properties for the parser that you choose.
Dynamic cache service
The dynamic cache service is internal to the application server. The following link takes you to
the information center topic that discusses the dynamic cache service:
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae
To use the dynamic cache service:
1. Use the dynamic cache service. Look for cachespec.xml in the information center.
2. The dynamic cache service is located in the administrative console. Click Servers →
Server Types → Application Servers → server_name → Container Services →
Dynamic Cache Service.
Enterprise JavaBeans container cache
The Enterprise JavaBeans (EJB) container is internal to the application server. The following
link takes you to the information center topic that pertains to the EJB container:
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/rprf_ejbcontainer.html
Follow these recommendations:
1. Set the cleanup interval to clean up unused items. The default is 3,000 milliseconds.
Increase the cleanup interval as the cache size increases.
2. Set the cache size to the maximum number of active instances during a typical workload.
3. Break container-managed persistence (CMPs) into several EJB modules during
assembly.
4. The EJB container settings are located in the administrative console. Click Servers →
Server Types → Application Servers → server_name → EJB Container Settings.
10
WebSphere Application Server for z/OS V6.1 and V7 Tuning Tips
Session management
The following link takes you to the information center topic that pertains to application session
management:
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/rprs_sest.html
To use session management:
1. The session management settings are already set at the optimal settings when you begin.
2. Session management is located in the administrative console. Click Servers → Server
types → Application Servers → server_name → Container Settings → Web
Container Settings → session management.
Data sources
You define data sources when you want to access data that is outside of your application
server:
1. Review the information about connection pooling in the information center:
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.
websphere.zseries.doc/info/zseries/ae/tdat_conpoolman.html
2. Set the maximum connection pool value lower than the value of the Web container thread
pool size. Lower settings of 10 - 30 perform better than settings of 100.
3. Set the minimum connection pool.
4. Set the statement cache size (unique + callable statements for each application that uses
this data source).
5. The data sources can be located in the administrative console. Click Resources →
JDBC → JDBC providers → your_jdbc_provider → Data sources.
1.3.2 Tuning the run time
The following topics pertain to the environment but not necessarily to the internal components
of the application server.
Tracing
The following link takes you to the information center topic that pertains to the runtime trace:
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/rprf_tuneztrace.html
Follow these steps:
1. Ensure that you are not tracing more information than necessary. In the administrative
console, go to Environment → WebSphere Variables.
2. Check that ras_trace_defaultTracingLevel = 0 or 1. Increasing this value higher than 1
affects the performance.
3. Verify that ras_trace_basic and ras_trace_detail are not set. The less information that you
trace, the better your performance.
4. Set ras_trace_outputLocation to BUFFER only.
5. Set ras_traceBufferCount=4 and ras_trace_BufferSize=128.
Chapter 1. WebSphere Application Server for z/OS Version 7 tuning tips
11
6. Disable JRas tracing. The settings are in the administrative console. Select
Troubleshooting → Logs and trace → server_name → Change Log Detail Levels.
Set the following trace specs: *=all=disable
Security
The following link takes you to the information center topic that pertains to runtime security:
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/rprf_tunezsec.html
Follow these steps to tune security:
1. Use the minimum number of EJBROLES on methods.
2. Disable Java2 security.
3. Use the lowest level of authorization that is consistent with your security needs.
4. If using SSL, use the lowest level of encryption that is consistent with your security needs.
Auto reload
Auto reload pertains to JavaServer Pages (JSPs) and how often they are compiled. Consider
performance when reloading JSPs. For more information, refer to this Web site:
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/uweb_jspreload.html
SOAP
SOAP is a means of sending and receiving messages. Follow these recommendations:
1. Specify no local copies in the servant.jvm.properties file.
2. Specify TX_NOT_SUPPORTED and select local transaction.
3. Avoid passing empty attributes or elements.
4. SOAP and XML tend to require larger heap sizes. Tune the heap accordingly.
5. Ensure that TCP/IP send/receive buffers can handle the bulk of the XML messages.
6. Choose a Document model rather than Remote Procedure Call (RPC), which gives you
more control over the XML format. If using RPC, pass Strings if possible.
7. Consider writing your own serializers and deserializers, avoiding reflection.
Application considerations
The following link takes you to the information center topic that pertains to applications:
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/cprf_appdesign.html
Also, read the top 10 Java 2 Platform, Enterprise Edition (J2EE) best practices at “The top 10
(more or less) J2EE best practices” by Kyle Brown, Keys Botzum, and Ruth Willenborg in IBM
WebSphere Developer Technical Journal, May 12 2004:
http://www.ibm.com/developerworks/websphere/techjournal/0405_brown/0405_brown.html
12
WebSphere Application Server for z/OS V6.1 and V7 Tuning Tips
2
Chapter 2.
WebSphere Application Server
for z/OS Version 6.1.x tuning tips
This chapter provides a “cheat sheet” to help you with the performance tuning of WebSphere
Application Server V6.1 systems on z/OS. It provides three areas of concentration:
򐂰 “Tuning z/OS” on page 14
򐂰 “Tuning the subsystems” on page 18
򐂰 “Tuning the WebSphere Application Server run time” on page 21
The WebSphere Application Server Information Center explains all of the information that is
referenced here in greater detail:
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/rprf_zostuneindex.html
Search any WebSphere Information Center with the search term: “tuning index”.
This handy reference is designed to guide you toward an appropriate item to investigate. It is
not designed to cover all scenarios. Whenever possible, we include a link to the information
center to take you directly to the designated topic.
© Copyright IBM Corp. 2009. All rights reserved.
13
2.1 Tuning z/OS
The following recommendations pertain to components of the z/OS operating system.
2.1.1 Tuning storage
The following link takes you to the information center section that pertains to storage:
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/tprf_tunezstorage.html
Virtual storage
The following recommendations pertain to tuning z/OS virtual storage:
1. If using STEPLIB to the load modules, minimum REGION=512 MB.
Previously recommended: Move the runtime load modules to the link pack area
(LPA) (common storage) if possible in your environment. This situation is not as much
of a concern in Version 6.1.x. The number and the size of load modules have
decreased.
For more information, refer to this Web site:
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.
websphere.zseries.doc/info/zseries/ae/rprf_tunezprogloc.html
2. Use Resource Monitoring Facility (RMF) to determine if you need more paging space or
auxiliary storage. Also, try the CCVUTILP options to get CPU utilization by second.
3. The following settings might limit virtual storage:
a. Set the REGION in the JCL procedure.
Recommendation: Set to 0M, which means take all of the REGION that is needed.
b. IEFUSI exits limit virtual memory for running processes. Check for the exit to verify that
you receive the expected memory.
c. Use the MAXASSIZE setting in Unix System Services.
Recommendation: Set MAXASSIZE = 2147483647.
d. Use the MEMLIMIT setting in SMFPRMxx or in the JCL procedure.
Real storage
The following recommendations pertain to tuning z/OS real storage:
1. Set a minimum of 384 MB real storage for the smallest configuration. Storage utilization
depends on the size of the Java virtual machine (JVM) heap. Having over 16 gigabytes of
real storage on the machine is not uncommon for Java applications.
2. To reduce paging, configure with 64-bit real storage and give the logical partition (LPAR)
more than 2 GB main storage. If the 31-bit mode is your only option, dedicate more
expanded storage to reduce paging.
14
WebSphere Application Server for z/OS V6.1 and V7 Tuning Tips
Java virtual machine heap size
The following recommendations pertain to tuning the Java virtual machine that is executing
on the z/OS operating system:
1. To set the heap size in the administrative console, click Servers → Application
Servers → server_name → Server Infrastructure → Process Definition →
address_space_type → Java Virtual Machine.
2. Garbage Collection (GC): It is normal to get allocation failures from the heap. When an
allocation failure occurs, the JVM invokes GC to reclaim unused space in the heap. GC
takes control from your application. If GC runs too often, you will see poor performance
while your application waits for GC to complete.
Recommendation: Adjust the heap size so that GC runs less than or equal to 5% of
the time.
We often recommend the following tool to analyze GC traces: IBM Pattern Modeling and
Analysis Tool for Java Garbage Collector:
http://www.alphaworks.ibm.com/tech/pmat
You can obtain this tool and other tools for analyzing GC traces at the IBM Support
Assistant Web site:
http://www.ibm.com/software/support/isa/
3. Use verbose GC tracing to investigate how often GC runs and how much memory is being
taken by your application. Click Servers → Application Servers → server_name →
Server Infrastructure → Process Definition → address_space_type → Java Virtual
Machine.
Select the Verbose GC check box. The output goes to SYSOUT in the Job Entry
Subsystem (JES) spool for the address space.
4. If the initial heap size is too large when GC finally starts, GC causes a long delay while it
cleans the excessively large heap.
5. If you are paging already, increasing the heap can worsen the performance. You can
monitor the heap by using the following modify command on the console:
F <control process name>,DISPLAY,JVMHEAP
To see if your page disk is full, issue the command:
D ASM
2.1.2 Tuning the operating system
The following recommendations pertain to tuning components that are built within the z/OS
operating system. Refer to this link:
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/rprf_tunezopsys.html
Tuning component trace (CTRACE)
CTRACE is a low level trace within z/OS. Eliminate overhead by ensuring that all components
are either set to MIN or OFF. Issue the following console command to display settings:
D TRACE, COMP=ALL
Chapter 2. WebSphere Application Server for z/OS Version 6.1.x tuning tips
15
To change a component to its minimum tracing level, issue this command:
TRACE CT , OFF , COMP=<component identifier>
Tuning System Monitoring Facility
System Monitoring Facility (SMF) allows you to capture the internal workings of z/OS
components and the applications that execute on z/OS. Follow these steps:
1. Review the SMFPRMxx member to ensure that you collect the minimum data.
2. Use SMF 92 or 120 records only for diagnostics. If you choose to run with 120 records,
use server and container interval rather than server activity and container activity records.
Important: Using 120 records can cause significant performance degradation (be
careful).
3. Ensure that SMF data that is being gathered for other subsystems is minimal and that the
SMF datasets are allocated optimally.
Tuning Resource Recovery Services
The following recommendations pertain to tuning Resource Recovery Services (RRS) within
the z/OS operating system. The following link takes you to the RRS configuration in the
information center:
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/rprf_tunezrrs.html
Follow these steps:
1. Use the coupling facility (CF) logging rather than the DASD logging. If you must use
DASD logging, use the highest performing DASD possible and allocate logs with large
control interval (CI) sizes.
2. Monitoring SMF 88 records allows you to determine the optimal logging.
3. Table 2-1 shows the recommended default settings for the LOGR policy.
Table 2-1 Recommended default settings for LOGR policy
Log stream
Initial size
Size
RM.DATA
1 MB
1 MB
MAIN.UR
5 MB
50 MB
DELAYED.UR
5 MB
50 MB
RESTART
1 MB
5 MB
ARCHIVE
5 MB
50 MB
4. Eliminate the ARCHIVE log by either not creating the ARCHIVE log or deleting the
existing ARCHIVE log. The ARCHIVE log logs successful transactions; therefore,
eliminating it can increase performance by decreasing I/O.
16
WebSphere Application Server for z/OS V6.1 and V7 Tuning Tips
Tuning UNIX System Services
The following link takes you to the information center section that pertains to UNIX System
Services:
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/rprf_tunezuss.html
Follow these steps:
1. Mount shared file systems as read-only in a sysplex.
2. Determine candidates for hierarchical file system (HFS) file caching by reviewing SMF 92
records. The initial cache size is set in the BPXPRMxx parmlib member.
3. Consider zSeries file system (zFS), which offers improved file system access. There is a
conversion tool to convert existing HFS file systems to zFS file systems. Refer to the HFS
to zFS Migration Tool, REDP-4328, at this Web site:
http://www.redbooks.ibm.com/abstracts/REDP4328.html?Open
You can obtain tips for tuning zFS in z/OS Distributed File Service zSeries File System
Implementation z/OS V1R10, SG24-6580, at this Web site:
http://www.redbooks.ibm.com/abstracts/sg246580.html?Open
4. Use the filecache command. You can cache high activity read-only files.
5. Allow the VMAX BPX parm to default to half of the physical memory. Shell utilities run
slowly if the VMAX BPX parm is too small.
Tuning Workload Manager (minimum required)
The following link takes you to the information center section that pertains to Workload
Manager (WLM):
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/rprf_tunezwlm.html
A general rule for WLM is that it performs better with fewer service classes. Currently, the
following service classes exist:
򐂰
򐂰
򐂰
򐂰
򐂰
򐂰
򐂰
򐂰
8 IMPORTANCE 1 Velocity 65 service classes
9 IMPORTANCE 1 Velocity 55 service classes
4 IMPORTANCE 2 Velocity 55 service classes
4 IMPORTANCE 3 Velocity 25 service classes
11 IMPORTANCE 3 Velocity 45 service classes
6 IMPORTANCE 3 Velocity 55 service classes
7 IMPORTANCE 4 Velocity 25 service classes
4 IMPORTANCE 5 Velocity 10 service classes
Reducing the duplicates reduces the number of service classes, which improves WLM
performance by reducing the number of decisions, thus, reducing the path length.
We summarize the general rule for WebSphere and WLM on z/OS next.
Chapter 2. WebSphere Application Server for z/OS Version 6.1.x tuning tips
17
WebSphere has several types of work running in its address spaces, so it is classified using
classification rules under three types of workloads:
1. For STC workloads, the WebSphere address spaces’ control regions and servant regions
are given an aggressive Velocity goal equal to or slightly less than DB2, IMS, or MQ and a
goal equal to or slightly higher than CICS.
2. For OMVS workloads, the WebSphere address spaces’ control regions and servant
regions are given an aggressive Velocity goal. Therefore, at startup, the BPXBATCH
facility that is used to run the applyPTF.sh script does not slow the startup of the server.
3. For CB workloads, the WebSphere servant regions are given a response time with a
percentile goal close to but not to exceed 90% of the work in .5 seconds. Even though
WebSphere servers are long running tasks, typically, Velocity goals are used for long
running tasks. The actual transactions within WebSphere are very short-lived HTTP type
transactions. Response time with percentile goals is used for these short-lived
transactions.
The report classes that are associated with the classification rule for each workload are
unique.
Tuning Language Environment
The following link takes you to the information center section that pertains to the Language
Environment:
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/tprf_tunezleheap.html
Follow these steps:
1. For LPALSTxx, make sure that the Language Environment and C++ run times are in the
LPA.
2. Do not use the following options in production: RPTSTG(ON), RPTOPTS(ON), or
HEAPCHK(ON).
2.2 Tuning the subsystems
The following information pertains to resources that run on z/OS but that are not necessarily
tied to the operating system.
2.2.1 Tuning IBM HTTP Server
The following link takes you to OS/390 e-business Infrastructure: IBM HTTP Server V5.1 for
OS/390, SG24-5603:
http://www.redbooks.ibm.com/abstracts/SG245603.html?Open
Check the HTTP Server plug-in properties to see which properties might affect workload
distribution and performance:
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/uwsv_plugin_props.html
18
WebSphere Application Server for z/OS V6.1 and V7 Tuning Tips
2.2.2 Tuning DB2
The following actions can help you tune the database management system:
1. Run the Runstats utility periodically to gather the correct statistics. If you think that the
database is important to the business or that the database is large, this document stops at
150,000 rows (you can define the size). Run the utility at least once per week.
2. Ensure that the DB2 logs are large enough and that they are allocated on your fastest
volumes.
3. Develop a DB2 buffer pool strategy for your data and application mix. Monitor the buffer
pools regularly.
4. Monitor and adjust the memory usage of the EDM pool, record identifier (RID) pool, and
sort pools for your workload.
5. Ensure a good physical database design by assigning tablespaces to tables that are
based on the size and usage of the tables. Avoid simple tablespaces.
6. Properly index tables to avoid table space scans and sorts.
7. Reorganize tables to maintain clustering and free space.
8. Use the latest Java Database Connectivity (JDBC) maintenance level. The JDBC level is
in the address space output.
9. Enable dynamic statement caching.
10.Turn off JDBC tracing.
11. Develop an SQL monitoring and tuning strategy to identify poorly performing SQL
statements.
2.2.3 Tuning RACF
The following link takes you to the information center section that pertains to security:
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/tsec_tune.html
Follow these steps:
1. If you do not use EJBROLES, do not enable the class in RACF.
2. If you do not need Java2 Security, disable it.
3. RACLIST CBIND, EJBROLE, SERVER, and STARTED.
4. Use Peripheral Component Interconnect (PCI) Crypto cards to speed up the Secure
Sockets Layer (SSL).
5. Use virtual lookaside facility (VLF) to cache user identifiers (UIDs)/group identifiers (GIDs)
in the COFVLFxx parmlib member.
Chapter 2. WebSphere Application Server for z/OS Version 6.1.x tuning tips
19
2.2.4 Tuning TCP/IP
The following steps help you tune items that pertain to the network:
1. Set MAXSOCKETS and MAXFILEPROC high enough. Set both MAXSOCKETS and
MAXFILEPROC to 5000 for low throughput, 10000 for medium throughput, and 35000 for
high throughput environments. The D OMVS,L,PID=XXX command shows the limit,
current value, and high mark.
2. Specify NODELAYACKS for ports in the TCP/IP profile (especially for SSL ports).
Example definitions are generated inside the customization jobs and directions when
building a WebSphere Application Server cell.
3. Cache frequent lookups in the Domain Name System (DNS).
4. Increase send and receive buffers from 16 KB to 64 KB (it is reasonable for the buffers to
be 256 KB).
5. Increase the default listening backlog from 10 to 100 connections.
6. Reduce the finwait2 time setting from 600 to 60 seconds.
2.2.5 Tuning MQ/Java Message Service (JMS) connections
The following steps can help you tune the messaging system:
1. Turn off all tracing.
2. Use long-lived queue manager connections as opposed to create/destroy on every
message.
3. Use the bindings mode if the queue manager and the client are on the same z/OS image.
4. Use automated acknowledgments to reduce the message delay.
5. Use the same coded character set identifier (CCSID) to eliminate translation between the
client and the queue manager.
6. Small messages are best. If a message must be over 1 MB, send it as one message
rather than breaking it into several smaller messages.
7. Persistent transacted messages perform better than persisted non-transacted messages,
because the commit happens at the end of the transaction.
8. Nonpersistent, non-transactional messages perform best. Use them whenever possible.
9. MQ application support filter (ASF) adds more overhead than non-ASF messaging.
10.Local queues that are defined as shared generally perform better than non-shared
queues.
11. Message-driven beans (MDBs) are asynchronous. Do not force serial mode
(maxsession=1). Set maxsession realistically to the number of concurrent sessions.
12. The timeout setting for the JMS server is the control_region_jms_request_timeout default
of 60 and a range from 0 - 2147040.
13.For full WebSphere MQ, optimize the number of concurrent queue manager connections:
CTHREAD is the maximum number of connections. It must be greater than or equal to the
sum of IDBACK and IDFORE. It is normal for these values to be in the hundreds.
14.Adjust the checkpoint interval and active log buffers. LOGLOAD controls the number of
records before a checkpoint. LOGLOAD is often 900000 to avoid frequent log switching. A
checkpoint needs to occur no more than every 5 or 6 minutes. WRTHRSH is the number
of active log buffers. We often use 200; if you see high I/O, you might want to increase it.
20
WebSphere Application Server for z/OS V6.1 and V7 Tuning Tips
2.2.6 Tuning global resource serialization (GRS)
The following tip can help you tune the sysplex communication.
If you are not in a sysplex, configure GRS=NONE. If you are in a sysplex, configure
GRS=STAR.
2.2.7 Tuning the Java virtual machine
The following steps can help you tune the Java virtual machine (JVM):
1. Use the just-in-time (JIT) compiler; do not turn it off.
2. Do not use the debug dynamic link libraries (DLLs) in your libpath.
3. Point the classpath at only those classes that you need, with the most frequently
referenced classes near the beginning of the classpath.
4. Investigate the generic JVM arguments: -Xquickstart and –Xverify:none.
There must be a serious concern about server startup time to use these JVM arguments.
The -Xquickstart argument can cause degradation during run time in favor of a faster
startup time (be careful with these arguments).
5. Searching for missing classes can result in significant I/O and wasted time.
6. Review the IBM Education Assistant presentation that describes the Java 5.0 Software
Developer Kit (SDK) that is included in WebSphere Application Server for z/OS
Version 6.1:
http://publib.boulder.ibm.com/infocenter/ieduasst/v1r1m0/index.jsp?topic=/com.i
bm.iea.was_v6/was/6.1/ProgrammingModels/WASv61_Java5/player.html
2.2.8 Tuning CICS
The following tips can help you tune your existing transaction management system:
1. Set LGDFINT=5.
Setting the log defer interval to 5 milliseconds proves to be best value in our tests. You
can set the log defer interval dynamically:
CEMT SET SYSTEM [LOGDEFER(value)]
2. Set RECEIVECOUNT to handle all concurrent external CICS interface (EXCI) pipes. The
default is 4.
2.3 Tuning the WebSphere Application Server run time
In the following section, we provide tuning tips that pertain to the application server run time.
2.3.1 Tuning application servers
The following link takes you to the information center section that pertains to the application
server:
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/tprf_tunezconfig.html
Chapter 2. WebSphere Application Server for z/OS Version 6.1.x tuning tips
21
Object Request Broker (ORB)
The object request broker is internal to the application server:
1. Use pass by reference by setting the following variable. Click Servers → Application
Servers → server_name → Container Services → ORB Service.
Select the pass by reference check box.
2. Investigate com.ibm.CORBA.FragmentSize in the information center.
XML parser definitions
You can add an XML parser to the run time, and it is not necessarily created by IBM. Refer to
the options for your XML parser to obtain tuning guidance. The following links might help:
򐂰 Improve performance in your XML applications, Part 1
http://www.ibm.com/developerworks/xml/library/x-perfap1.html
򐂰 Improve performance in your XML applications, Part 2
http://www.ibm.com/developerworks/xml/library/x-perfap2.html
XML parsers have properties. Investigate the properties for the parser that you choose.
Dynamic cache service
The dynamic cache service is internal to the application server. The following link takes you to
the information center topic that discusses the dynamic cache service:
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.web
sphere.zs
Follow these steps:
1. Use the dynamic cache service. Look for cachespec.xml in the information center.
2. The dynamic cache service is located in the administrative console. Click Servers →
Application Servers → server_name → Container Services → Dynamic Cache
Service.
EJB container
The Enterprise Java Bean (EJB) container is internal to the application server. The following
link takes you to the information center topic that pertains to the EJB container:
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/rprf_ejbcontainer.html
Follow these steps:
1. Set the cleanup interval to clean up unused items. The default is 3000 milliseconds.
Increase the interval as the cache size increases.
2. Set the cache size to the maximum number of active instances during a typical workload.
3. Break container-managed persistence (CMPs) into several EJB modules during
assembly.
4. The EJB container settings are located in the administrative console at Servers →
Application Servers → server_name.
22
WebSphere Application Server for z/OS V6.1 and V7 Tuning Tips
Session management
The following link takes you to the information center topic that pertains to application session
management:
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/rprs_sest.html
These tips can help you tune session management:
1. The session management settings are already set at the optimal settings when you begin.
2. Session Management is located in the administrative console. Click Servers →
Application Servers → server_name → Container Settings → Web Container
Settings → session management.
Data sources
Data sources are defined when you want to access data outside of your application server.
Use these tips to tune your data sources:
1. Review information about connection pooling in the information center.
2. Set the maximum connection pool lower than the value of the Web container thread pool
size. Lower settings of 10 - 30 perform better than settings of 100.
3. Set the minimum connection pool.
4. Set the statement cache size (unique + callable statements for each application that uses
this data source).
5. Data sources can be located in the administrative console. Click Resources → JDBC
providers → your_jdbc_provider → Data Sources.
2.3.2 Tuning the run time
The following topics pertain to the environment but not necessarily to the internal components
of the application server.
Tracing
The following link takes you to the information center topic that pertains to the runtime trace:
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/rprf_tuneztrace.html
Follow these steps:
1. Ensure that you are not tracing more information than necessary. In the administrative
console, click Environment → WebSphere Variables.
2. Check that ras_trace_defaultTracingLevel = 0 or 1. Increasing this value higher than 1
affects the performance.
3. Verify that ras_trace_basic and ras_trace_detail are not set. The less information that you
trace, the better your performance.
4. Set ras_trace_outputLocation to BUFFER only.
5. Set ras_traceBufferCount=4 and ras_trace_BufferSize=128.
6. Disable JRas tracing in the administrative console. Click Troubleshooting → Logs and
trace → server_name → Change Log Detail Levels.
7. Set the following trace specs: *=all=disable
Chapter 2. WebSphere Application Server for z/OS Version 6.1.x tuning tips
23
Security
The following link takes you to the information center topic that pertains to runtime security:
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/rprf_tunezsec.html
Follow these steps to tune security:
1. Use the minimum number of EJBROLES on methods.
2. Disable Java2 security.
3. Use the lowest level of authorization that is consistent with your security needs.
4. If using SSL, use the lowest level of encryption that is consistent with your security needs.
Auto reload
Auto reload pertains to JavaServer Pages (JSPs) and how often they are compiled. Consider
performance when reloading JSPs. For more information, refer to this Web site:
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/uweb_jspreload.html
SOAP
SOAP is a means of sending and receiving messages. When using SOAP, follow these
steps:
1. Specify no local copies in the servant.jvm.properties file.
2. Specify TX_NOT_SUPPORTED and select local transaction.
3. Avoid passing empty attributes or elements.
4. SOAP and XML tend to require larger heap sizes. Tune the heap accordingly.
5. Ensure that the TCP/IP send/receive buffers can handle the bulk of the XML messages.
6. Choose a Document model rather than Remote Procedure Call (RPC), which gives you
more control over the XML format. If using RPC, pass Strings if possible.
7. Consider writing your own serializers and deserializers, thus, avoiding reflection.
Application considerations
The following link takes you to the information center topic that pertains to applications:
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.web
sphere.zseries.doc/info/zseries/ae/cprf_appdesign.html
Also, read the top 10 Java 2 Platform, Enterprise Edition (J2EE) best practices at “The top 10
(more or less) J2EE best practices” by Kyle Brown, Keys Botzum, and Ruth Willenborg in IBM
WebSphere Developer Technical Journal, May 12 2004:
http://www.ibm.com/developerworks/websphere/techjournal/0405_brown/0405_brown.html
24
WebSphere Application Server for z/OS V6.1 and V7 Tuning Tips
3
Chapter 3.
One page performance overview
We designed this one page performance overview for you to print separately and keep with
you as a handy reminder of the options that are discussed in this paper.
© Copyright IBM Corp. 2009. All rights reserved.
25
26
WebSphere Application Server for z/OS V6.1 and V7 Tuning Tips
Tuning z/OS
Virtual storage
򐂰
򐂰
򐂰
Determine paging with RMF
Use CCVUTILP to get CPU
utilization by second
Do not limit virtual storage
Region=0 IEFUSI exits
MAXASSIZE MEMLIMIT
Real storage
򐂰
򐂰
Memory for the LPAR in the teens
16 GB or more is good
64 bit is the default for Version 7
WLM
򐂰
򐂰
򐂰
򐂰
MQ/JMS
Limit number of service classes to
minimum
Classify WebSphere address
spaces under STC, CB, and
OMVS workloads
Slightly less aggressive or equal
to DB2, IMS, or MQ
More aggressive CICS
Language Environment
򐂰
򐂰
Language Environment and C++
modules in LPA
Use RPTSTG, RPTOPTS, and
HEAPCHK only in test
򐂰
򐂰
򐂰
򐂰
򐂰
򐂰
򐂰
򐂰
򐂰
򐂰
򐂰
JVM
򐂰
򐂰
򐂰
򐂰
򐂰
򐂰
򐂰
Check garbage collection often
Adjust heap size, GC <5%
Do not increase heap if paging
already
Use the JIT, do not turn off
No debug dlls
Minimal classpath, with frequently
referenced classes in the
beginning
No searching for missing classes,
which consumes much I/O
DB2
򐂰
򐂰
򐂰
򐂰
򐂰
򐂰
򐂰
򐂰
򐂰
Run the runstats utility regularly
Adequate size for DB2 logs
Monitor buffer pools regularly
Monitor EDM, RID, and sort pools
for your application regularly
Stay away from simple table
spaces
Index tables
Re-org tables regularly
Apply latest JDBC maintenance
Monitor performance of SQL
statements regularly
Tuning the operating
system and resource
managers
RACF
CTRACE
򐂰
򐂰
򐂰
򐂰
Set components to min/off
SMF
򐂰
򐂰
򐂰
Type 92 or 120 are for
diagnostics only
Try subtype9 (new to Version 7)
Allocate SMF datasets optimally
RRS
򐂰
򐂰
Use CF rather than DASD
Delete the archive log or do not
create the archive log
UNIX System Services
򐂰
򐂰
򐂰
򐂰
򐂰
Mount shared file systems
read-only
Use SMF92 set cache size
Consider zFS over HFS
Filecache command hit rate
Use VMAX BPX parameter
default value
򐂰
򐂰
Only enable used classes
Disable Java2 security if not used
RACLIST (CBIND, EJBROLE,
SERVER, and STARTED)
Use PCI Crypto cards for SSL
COFVLFxx parmlib member to
cache UIDs/GIDs
򐂰
򐂰
򐂰
򐂰
򐂰
򐂰
CICS
򐂰
򐂰
MAXSOCKETS at higher levels,
as high as 35000
MAXFILEPROC at higher levels,
as high as 35000
NODELAYACKS for ports
Cache frequent DNS lookups
Increase buffers (send/receive)
Increase default listen backlog
Reduce finwait2 time
LGDFINT=5 is best setting
RECEIVECOUNT must handle all
concurrent EXCI pipes
Tuning the application
server run time
ORB
򐂰
򐂰
Use pass by reference
Investigate FragmentSize parm
XML parser
򐂰
Whatever parser you choose will
have properties; investigate them
Dynamic cache
򐂰
򐂰
TCP/IP
򐂰
򐂰
򐂰
Turn off all tracing
Use long-lived qmgr connections
Use bindings mode when
possible
Use auto acknowledgements
Use the same CCSID
Small messages are best
If over 1 MB, send in 1 message
Persist transacted perform better
than persist non-transacted
Non-ASF messaging performs
better than ASF messaging
Local queues shared perform
better than non-shared queues
Do not force serial mode for
MDBs (maxsession=1)
CTHREAD>=IDBACK+ IDFORE
Checkpoints every 5 or 6 minutes
– adjust log buffers
Use the dynamic cache service
Code the cachespec.xml
EJB container
򐂰
򐂰
The cleanup interval increases as
cache size increases
Set the cache size to the max
number of active instances
Session management
򐂰
Optimal setting as shipped
Data sources
򐂰
Max connection pool < Web
container thread pool
Chapter 3. One page performance overview
27
28
WebSphere Application Server for z/OS V6.1 and V7 Tuning Tips
Related publications
The publications listed in this section are considered particularly suitable for a more detailed
discussion of the topics covered in this paper.
IBM Redbooks publications
For information about ordering these publications, see “How to get IBM Redbooks
publications” on page 30. Note that several of the documents that are referenced here might
be available in softcopy only.
򐂰 HFS to zFS Migration Tool, REDP-4328
򐂰 z/OS Distributed File Service zSeries File System Implementation z/OS V1R10,
SG24-6580
򐂰 OS/390 e-business Infrastructure: IBM HTTP Server V5.1 for OS/390, SG24-5603
Online resources
These Web sites are also relevant as further information sources:
򐂰 WebSphere Application Server V7 Information Center
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp
򐂰 WebSphere Application Server V6.1 Information Center
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp
򐂰 IBM Pattern Modeling and Analysis Tool for Java Garbage Collector
http://www.alphaworks.ibm.com/tech/pmat
򐂰 IBM Support Assistant
http://www.ibm.com/software/support/isa/
򐂰 Improve performance in your XML applications, Part 1
http://www.ibm.com/developerworks/xml/library/x-perfap1.html
򐂰 Improve performance in your XML applications, Part 2
http://www.ibm.com/developerworks/xml/library/x-perfap2.html
򐂰 “The top 10 (more or less) J2EE best practices” by Kyle Brown, Keys Botzum, and Ruth
Willenborg in IBM WebSphere Developer Technical Journal, May 12 2004
http://www.ibm.com/developerworks/websphere/techjournal/0405_brown/0405_brown.h
tml
򐂰 IBM Education Assistant: IBM Java 50 SDK
http://publib.boulder.ibm.com/infocenter/ieduasst/v1r1m0/index.jsp?topic=/com.i
bm.iea.was_v6/was/6.1/ProgrammingModels/WASv61_Java5/player.html
© Copyright IBM Corp. 2009. All rights reserved.
29
How to get IBM Redbooks publications
You can search for, view, or download IBM Redbooks publications, Redpapers, Technotes,
draft publications and Additional materials, as well as order hardcopy IBM Redbooks
publications, at this Web site:
ibm.com/redbooks
Help from IBM
IBM Support and downloads
ibm.com/support
IBM Global Services
ibm.com/services
30
WebSphere Application Server for z/OS V6.1 and V7 Tuning Tips
Back cover
WebSphere Application
Server for z/OS V6.1 and
V7 Tuning Tips
Explore tuning tips for
z/OS
This IBM Redpaper publication provides a quick handy reference or
“cheat sheet” for tuning WebSphere Application Server for z/OS V6.1
and V7. It focuses on three areas:
Investigate tuning
tips for subsystems
and resources
򐂰 Tuning z/OS
򐂰 Tuning the subsystems
򐂰 Tuning the WebSphere Application Server run time
Tune WebSphere
Application Server run
time
This “cheat sheet” is designed to guide you toward an appropriate item
to investigate. It is not designed to cover all scenarios or provide
detailed information. When possible, we include a link to the
information center to take you directly to the designated topic:
򐂰 For Version 7.0.x, see Chapter 1, “WebSphere Application Server
for z/OS Version 7 tuning tips” on page 1.
򐂰 For Version 6.1.x, see Chapter 2, “WebSphere Application Server
for z/OS Version 6.1.x tuning tips” on page 13.
򐂰 For a quick summary to use as a handy reference, print Chapter 3,
“One page performance overview” on page 25.
This paper is intended for individuals who want to tune the
performance of WebSphere Application Server for z/OS V6.1 or V7.
®
Redpaper
INTERNATIONAL
TECHNICAL
SUPPORT
ORGANIZATION
BUILDING TECHNICAL
INFORMATION BASED ON
PRACTICAL EXPERIENCE
IBM Redbooks are developed
by the IBM International
Technical Support
Organization. Experts from
IBM, Customers and Partners
from around the world create
timely technical information
based on realistic scenarios.
Specific recommendations
are provided to help you
implement IT solutions more
effectively in your
environment.
For more information:
ibm.com/redbooks
REDP-4628-00
™
Download