Upload
buiphuc
View
234
Download
1
Embed Size (px)
Citation preview
Online Performance Configuration
Guidelines for PeopleTools 8.45, 8.46,
8.47, 8.48, and 8.49 By: Internal Systems
June 2008
Including:
� Application Server Guidelines
� Web Server Guidelines
� Web Browser Configuration
� Additional Configurations
� Integration Broker
� Operating System Settings
� Call Telephony Interface (CTI) Guidelines
� PSAE and PSAESRV Guidelines
� Reporting Tools
� Monitoring Tools
PeopleSoft Red Paper Series
Online Performance Configuration Guidelines for PeopleTools 8.45,
8.46, 8.47, 8.48, and 8.49
Copyright 2004 PeopleSoft, Inc. All rights reserved. Printed on Recycled Paper. Printed in the United States of America.
Restricted Rights
The information contained in this document is proprietary and confidential to PeopleSoft, Inc. Comments on this document can be submitted to [email protected]. We encourage you provide feedback on this Red Paper and will ensure that it is updated based on feedback received. When you send information to PeopleSoft, you grant PeopleSoft a non-exclusive right to use or distribute the information in any way it believes appropriate without incurring any obligation to you. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying and recording, for any purpose without the express written permission of PeopleSoft, Inc. This document is subject to change without notice, and PeopleSoft does not warrant that the material contained in this document is error-free. If you find any problems with this document, please report them to PeopleSoft in writing. This material has not been submitted to any formal PeopleSoft test and is published AS IS. It has not been the subject of rigorous review. PeopleSoft assumes no responsibility for its accuracy or completeness. The use of this information or the implementation of any of these techniques is a customer responsibility and depends on the customer's ability to evaluate and integrate them into the customer's operational environment. While each item may have been reviewed by PeopleSoft for accuracy in a specific situation, there is no guarantee that the same or similar results will be obtained elsewhere. Customers attempting to adapt these techniques to their own environments do so at their own risk Information in this book was developed in conjunction with use of the product specified, and is limited in application to those specific hardware and software products and levels. PeopleSoft may have patents or pending patent applications covering subject matter in this document. The furnishing of this document does not give you any license to these patents Any pointers in this publication to external Web sites are provided for convenience only and do not in any manner serve as an endorsement of these Web sites. PeopleSoft, PeopleTools, PS/nVision, PeopleCode, PeopleBooks, PeopleTalk, and Vantive are registered trademarks, and Pure Internet Architecture, Intelligent Context Manager, and The Real-Time Enterprise are trademarks of PeopleSoft, Inc. All other company and product names may be trademarks of their respective owners. The information contained herein is subject to change without notice.
.
3
Table of Contents
TABLE OF CONTENTS............................................................................................................................................................. 3
CHAPTER 1 - INTRODUCTION .............................................................................................................................................. 6
Structure of this Red Paper 6
Related Materials 6
CHAPTER 2 - APPLICATION SERVER GUIDELINES ...................................................................................................... 8
Application Server Memory Guidelines 8 Determining PeopleSoft AppServer Memory Usage Under NT................................................................................................. 8 Determining If Excessive Memory Swapping Happens Under NT ............................................................................................ 9 Determining Memory Usage on UNIX ...................................................................................................................................... 9 Determining If Excessive Memory Swapping Occurs Under UNIX ........................................................................................ 10
Application Server Recycle Count 10 Background .............................................................................................................................................................................. 10 Recommendation...................................................................................................................................................................... 11
Application Server Dynamic Recycle (PeopleTools 8.48 and Later) 11
Shared Cache for Application Server 11
Preload Cache (PeopleTools 8.48 and Later) 13
PSAPPSRV Instances 14
Use Parallel Boot 14
Set Application Server JVM Options 14
Confirm That the Required Bea Tuxedo Version and Minimum Rolling Patch Are Installed 14
CHAPTER 3 - WEB SERVER GUIDELINES....................................................................................................................... 16
Confirm That the Required Web Server Version, Service Pack, and JRE Version Are Installed 16
Use Jolt Session Pooling (PeopleTools 8.48 and Later) 16
Use Strict Failover and Weighted Load-Balancing (PeopleTools 8.48 and Later) 16
Oracle Application Server (Oracle AS) 17 Set JVM Heap Size to 256MB or Higher................................................................................................................................. 17 Capture JOLT Request Timing Traces..................................................................................................................................... 17 Modify Apache KeepAlive Setting .......................................................................................................................................... 18 Modify ThreadsPerChild and Oc4jCacheSize.......................................................................................................................... 18 Disable HTTP Request Logging in mod_oc4j ......................................................................................................................... 18 Generate Heap Dumps on OutOfMemoryError........................................................................................................................ 18
WebLogic 19 Log level Setting (PeopleTools 8.49 and Later)....................................................................................................................... 19 Confirm That the Posix Performance Pack is Loaded .............................................................................................................. 19 Set Thread Count...................................................................................................................................................................... 20 Confirm JRE Version ............................................................................................................................................................... 20 Set JVM Heap Size to 256MB or Higher................................................................................................................................. 20
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
Set OS File Descriptor to 100*ThreadCount............................................................................................................................ 20 Lower OS TCP/IP Cleanup/Timeout Settings .......................................................................................................................... 21 Monitor JVM Garbage Collection............................................................................................................................................ 21 Disable Servlet Reload ............................................................................................................................................................. 21 Capture JOLT Request Timing Traces..................................................................................................................................... 22
WebSphere 22 Log Level Setting (PeopleTools 8.49 and Later) ..................................................................................................................... 22 Ensure That JIT is Enabled and Class Verification is Skipped ................................................................................................ 23 Setup and Configuration........................................................................................................................................................... 23 Set Thread Count...................................................................................................................................................................... 23 Set JVM Heap Size to 256MB or Higher and Monitor JVM Garbage Collection ................................................................... 23 Other JVM Options .................................................................................................................................................................. 24 Disable Servlet Reload ............................................................................................................................................................. 24 Capture JOLT Request Timing Trace ...................................................................................................................................... 25 Using Resource Analyzer ......................................................................................................................................................... 26
CHAPTER 4 - WEB BROWSER CONFIGURATION......................................................................................................... 27 Microsoft Internet Explorer...................................................................................................................................................... 27 Netscape Browser..................................................................................................................................................................... 27 HTTP 1.1 Compliant Web Browser ......................................................................................................................................... 27
CHAPTER 5 - ADDITIONAL CONFIGURATIONS............................................................................................................ 29
Browser Compression 29
Caching 29
Navigation Pages Caching 30
HTTP KeepAlive 31
Reducing TCP Wait Time 31 For Windows NT...................................................................................................................................................................... 31 For AIX .................................................................................................................................................................................... 31 For HP/UX 11 or Solaris 2.8 and Later.................................................................................................................................... 32 For Solaris Prior to 2.8 ............................................................................................................................................................. 32
AIX Thread Model 32
Timeout Settings 32
CHAPTER 6 - INTEGRATION BROKER ............................................................................................................................ 35
Configure PSBRKHND Message Broker Handler 35
Optimize Message Queue Versus Message Consumption 35
Use of Message Segments for Oracle Delivered Full Sync Service Operations 35
Optimize One Message Versus Multiple Messages per Queue 36
Tuning PSADMIN Parameters for Asynchronous Messaging 36 DISPATCHER Parameters....................................................................................................................................................... 36 PSPUBDSP only ...................................................................................................................................................................... 37 HANDLER Parameters ............................................................................................................................................................ 37 PSPUBHND only..................................................................................................................................................................... 37
Tuning PSADMIN Parameters for Synchronous Messaging 37
Configure Dedicated Message Servers for High Volume Asynchronous Messaging 38
Configure Dedicated Multiple Domains for High-Volume Asynchronous Messaging 38
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2004. All rights reserved. 5
Application Guidelines for Asynch Messaging 39 Application Guidelines for Sync Messaging ............................................................................................................................ 39
Configure Load Balance Interval (PeopleTools 8.48 and Later) 40
Master/Slave 40
Reducing Maximum App Message Size 40
MultiThreaded Integration Broker (PeopleTools 8.46 and Later) 40
Scan Time Setting for App Messaging 41
PUBSUB Error And App Server Log File Growing 41
CHAPTER 7 - OPERATING SYSTEM SETTINGS............................................................................................................. 42
For Linux 42 TCP_WAIT.............................................................................................................................................................................. 42
For Solaris 42
For HP-UX 43
For Tru64 43
CHAPTER 8 - CALL TELEPHONY INTERFACE (CTI) ................................................................................................... 45
RENServer Parameters (psrenconfig.txt) 45
PSMCAPI Parameters (Renclient.Properties) 45
PSMCAPI Java Options (StartServer.bat) 46
CHAPTER 9 - PSAE AND PSAESRV .................................................................................................................................... 47
CHAPTER 10 - REPORTING TOOLS .................................................................................................................................. 48
XMLPublisher (PeopleTools 8.48 and Later) 48
Business Objects Enterprise (PeopleTools 8.48 and Later) 48
CHAPTER 11 - MONITORING TOOLS............................................................................................................................... 49 PeopleSoft Ping........................................................................................................................................................................ 49 psadmin .................................................................................................................................................................................... 49 PeopleSoft Performance Monitor ............................................................................................................................................. 49
APPENDIX A – VALIDATION AND FEEDBACK............................................................................................................... 50
Customer Validation 50
Field Validation 50
APPENDIX B – REVISION HISTORY................................................................................................................................... 51 Authors..................................................................................................................................................................................... 51 Reviewers ................................................................................................................................................................................. 51 Revision History....................................................................................................................................................................... 51
© Copyright PeopleSoft Corporation 2004. All rights reserved. 6
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
Chapter 1 - Introduction
This red paper is a practical guide for technical users, installers, system administrators, and programmers who implement,
maintain, or develop applications for Oracle’s PeopleSoft Enterprise Applications. In this red paper, we provide guidelines on
how to diagnose a PeopleSoft Online Transaction environment, including PeopleSoft Internet Architecture and Portal
configuration. This document does not cover configuration of batch processes.
Much of the information contained in this document originated within the PeopleSoft Global Support Center and is therefore
based on "real-life" problems encountered in the field. Although this document does not address every conceivable problem
that you could encounter with Tuxedo, the PeopleSoft Application Server, or your web server, the issues that appear here are
the problems that prove to be the most common or troublesome.
STRUCTURE OF THIS RED PAPER
This red paper provides guidance across the major PeopleSoft Internet Architecture components: Application Server, Web
Server, Web Browser, Integration Broker, and OS Kernel.
Keep in mind that PeopleSoft updates this document as needed so that it reflects the most current feedback that we receive from
the field. Therefore, the structure, headings, content, and length of this document are likely to vary with each posted version. To
see if the document has been updated since you last downloaded it, compare the date of your version to the date of the version
posted on Oracle Metalink or Oracle’s PeopleSoft Customer Connection.
RELATED MATERIALS
This red paper is not a general introduction to environment tuning, and we assume that our readers are experienced IT
professionals with a good understanding of PeopleSoft Internet Architecture. To take full advantage of the information covered
in this document, we recommend that you have a basic understanding of system administration, basic Internet architecture,
relational database concepts/SQL, and how to use PeopleSoft applications.
This document is not intended to replace the documentation delivered with the PeopleTools 8 or 8.4x PeopleBooks. To ensure
that you have a well-rounded understanding of our PeopleSoft Internet Architecture technology, we recommend that before you
read this document, you read information related to PeopleSoft Internet Architecture that is found in the PeopleTools
PeopleBooks. Please note that much of the information in this document eventually gets incorporated into subsequent versions
of the PeopleBooks.
Many of the fundamental concepts related to PeopleSoft Internet Architecture are discussed in the following PeopleSoft
PeopleBooks:
• PeopleSoft Internet Architecture Administration (PeopleTools|Administration Tools|PeopleSoft Internet Architecture
Administration)
• Application Designer (Development Tools|Application Designer)
• Integration Broker (Integration Tools|Application Messaging)
• PeopleCode (Development Tools|PeopleCode Reference)
• PeopleSoft Installation and Administration
• PeopleSoft Hardware and Software Requirements
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2004. All rights reserved. 7
Additionally, we recommend that you to read documentation on Oracle Application Server, BEA Weblogic/Tuxedo, and IBM
Websphere. See your PeopleSoft Installation and Administration PeopleBooks for directions on accessing the Oracle, BEA, and
IBM documentation.
This red paper has not been submitted for any formal PeopleSoft testing process and has not undergone rigorous review. The
material here is published as is. Oracle assumes no responsibility for its accuracy or completeness. The use of this information
or the implementation of any of these techniques is a customer responsibility and depends upon the customer's ability to
evaluate and integrate these techniques into their operational environments.
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2001. All rights reserved. 8
Chapter 2 - Application Server Guidelines
APPLICATION SERVER MEMORY GUIDELINES
Lack of memory resources on the application is the most common cause of serious online performance issues. If you are
experiencing more than 4 seconds of response time for every (as opposed to just a few transactions) web page refresh,
application server memory is probably to blame. “Memory swapping” is the most likely culprit. You may experience these same
problems when trying to run Microsoft PowerPoint, Word, and Excel on a PC with 12 MB of memory. Here are some tips that
you can do to see if you need more memory for your application server:
1. Ensure that you don't have too many PSAPPSRV processes booted.
During peak usage times, you should see some small amount of queuing for the psappsrv processes. If you have too many
processes, performance is compromised. The extra PSAPPSRV processes not only take up memory space and CPU time
from the OS, but also each PSAPPSRV is not sufficiently cached (that is, each PSAPPSRV caches only a portion of the
user panels). Fully caching each PSAPPSRV takes more time. To determine the queue length of the specific domain,
perform the following steps:
a) Run psadmin.
b) Go to PeopleSoft Domain Administration for the specific domain name.
c) Select TUXEDO command line.
d) Run the command pq.
The # Queued column displays the queue length for that application server process,
2. Follow this guideline for the memory footprint for the PSAPPSRV:
• CRM and HRMS use about 100-150 MB per application server process (CRM gets 50 users per process; HRMS gets
less).
• Supply Chain uses 300-500 MB per process (you get about 10-20 users per process).
• Financials uses 150-300 MB per process (you get about 20-30 users per process).
So, for example, if you have 1GB of memory available for a financials application server, boot no more than four
PSAPPSRV processes.
3. Ensure that you include all test, development, and production domains on a computer in your calculation.
A common problem is having four large domains on one computer with insufficient memory.
4. Check your memory utilization on the application server when you experience performance problems.
Check for swapping by using the memory monitoring procedures outlined in the following sections.
5. If you are swapping, either add more memory or reduce the number of domains or PSAPPSRV processes on the computer.
Determining PeopleSoft AppServer Memory Usage Under NT
To determine PeopleSoft Application Server memory usage under NT:
1. Use NT TaskManager to monitor all the PeopleSoft processes.
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2004. All rights reserved. 9
PeopleSoft process names begin with ps.
2. Start TaskManager and select View from the menu bar, and then select Select Columns.
Pick the Memory Usage and Virtual Memory Size columns.
3. Sort the process by name, and the two memory columns will tell you approximately the amount of memory that each
PeopleSoft process is using.
Memory Usage is not the entire memory consumption of the process, but only the amount of physical RAM that the process
is using. However, with NT, an application may be using much more Virtual Memory (that is, the paging file) than physical
memory, so if you're gauging memory at all, you must select both of these fields.
The Memory Usage columns includes the shared libraries loaded into each process; therefore, if you add up all the processes,
you will be “double counting” the shared libraries portion. Because PeopleSoft shares a lot of the common libraries, the
summation of all PeopleSoft processes is a quick estimator, not an absolute measurement of memory usage.
The total Memory Usage and the VM Size of the combined PeopleSoft processes should not be greater than 70 percent of the
real memory of the server.
Determining If Excessive Memory Swapping Happens Under NT
To determine if excessive memory swapping happens under NT:
1. Start the NT Performance Monitor, perfmon.
2. Add the Object Counter, under Memory, and then the Page/sec.
Pages/sec is the number of pages read from the disk or written to the disk to resolve memory references to pages that were
not in memory at the time of the reference. This is the sum of Pages Input/sec and Pages Output/sec. This counter includes
paging traffic on behalf of the system cache to access file data for applications. This value also includes the pages to/from
noncached mapped memory files. This is the primary counter to observe if you are concerned about excessive memory
pressure (that is, thrashing) and the excessive paging that may result.
When page/sec is greater than 100 hard pages per second, there is a swapping problem. Reduce the number of PSAPPSRV
processes or add more memory to the server.
Determining Memory Usage on UNIX
To help the end user better understand the memory consumption and CPU usage of the PeopleSoft Application Domain, we
have created several UNIX vendor-specific shell scripts to monitor the Performance Monitor parameters. You can obtain the
monitoring shell scripts from Customer Connection: https://www.peoplesoft.com/corp/en/login.jsp.
To access this red papar and the shell scripts for download:
1. Log in to Customer Connection.
2. Select Products + Industries on the right.
3. Select Enterprise Product Lines, Enterprise Tools and Technology, Enterprise PeopleTools, PeopleTools 8.4.
Here is a sample output of the ps_chk_domain script:
Please Enter your application server domain name? PT84 Please Enter interval in seconds? 10 Please Enter # of interval's?
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2001. All rights reserved. 10
100 Tue Oct 23 23:00:33 PDT 2001 For all PS Processes: Resident memory size is: 123.543 MB CPU for PS Processes: 11 % Virtual memory size is: 198.098MB For all PSAPPSRV Processes: Resident memory size is: 108.453MB CPU for PS Processes: 9%
Virtual memory size is: 106.559 MB
Resident memory refers to the real physical memory currently required by the process for its operation.
Virtual memory refers to the process virtual address size, which includes memory that has been paged out to the physical disk.
If the virtual memory continues to increase, you should lower the RecycleCount of the AppServer.
The output of ps_chk_domain.sh divides the portion of PSAPPSRV processes from the entire domain so that the end-user (or
system administrator) can get a better understanding with the distribution of the memory resources.
We recommend that the total resident memory for the entire PS Processes not exceed 70 percent of the total real memory
available on the server.
Determining If Excessive Memory Swapping Occurs Under UNIX
To determine if excessive memory swapping occurs under UNIX, use vmstat to determine if the OS is swapping.
To check whether paging is a problem, run vmstat and check out the pi column to see if you are doing much paging in and po
for paging out.
You can also run sar -q to check paging or run vmstat -s and take multiple samples to see if the page ins and outs to paging
space are the majority of the total paging.
APPLICATION SERVER RECYCLE COUNT
The Application server recycle count parameter dictates the number of services after which the AppServer automatically
restarts.
Background
The AppServer processes use physical runtime memory to cache Panel objects in order to speed up user response time, instead
of fetching the Panel objects from the database server every time. However, as the number of requests serviced by the
AppServer increases, the amount of physical memory occupied by the AppServer processes also increases. When the amount of
memory occupied by the AppServer becomes too large (relative to the real memory available at the time), paging to a file
system occurs and impacts user experience.
In order to effectively manage the memory footprint of the AppServer, keep the Recycle Count at a realistic level. When the
AppServer reaches the specified Recycle Count value, the AppServer terminates and restarts itself. When the AppServer
terminates, the occupied memory is released.
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2004. All rights reserved. 11
Recommendation
We recommend that you set the recycle count to 5,000.
Adjust the recycle count so that no memory swapping is introduced because of a high recycle count value. (See the previous
session for information how to determine memory swapping.)
To minimize the cost of recaching the AppServer, you must enable File Cache on the AppServer. To enable Server Caching, set
the EnableServerCaching=2 (the default value is 2).
----------------------------------------------------------------------- ; EnableServerCaching - ; 0 Server File caching disabled ; 1 Server File caching limited to most used classes ; 2 Server File caching for all types EnableServerCaching=2 -----------------------------------------------------------------------
APPLICATION SERVER DYNAMIC RECYCLE (PEOPLETOOLS 8.48 AND LATER)
Application server restarts can cause inconsistencies in response times. If you set the recycle count too low, more process
restarts will occur. If you set the recycle count too high, the processes can grow big, resulting in reduced response times due to
swapping or increased likelihood of crashing due to memory violation.
PeopleTools 8.48 and later provides a new feature to recycle an app server process when its memory growth exceeds a
configurable threshold. When you enable this feature, the application server will service (at a minimum) the number of requests
specified by the recycle count. The application server will continue to accept requests beyond the recycle count until its
memory growth (that is not due to metadata loads) exceeds the configurable threshold. Note that if an app server exceeds the
threshold before reaching the recycle count, then the system logs a delaying recycle message. To use this feature, consult the
PeopleBook: System and Server Administration under PSAPPSRV Options.
Customers who are interested in this feature should initially experiment with it in a staging environment to determine an
appropriate threshold for their specific applications and environments before using the feature in production. Optionally,
customers can use the recycle count achieved using the memory growth option in the staging environment as a static recycle
count in the production environment.
SHARED CACHE FOR APPLICATION SERVER
PeopleTools 8.4x has a shared cache feature in which the various psappsrv processes in an app server domain use a single set of
cache files rather than separate cache files for each process. All managed objects are included in the shared cache files so that
objects are not loaded from the database.
Note: You must preload all the necessary cache objects before you can enable the Shared Cache feature.
PeopleSoft installation is supplied with an Application Engine program called LOADCACHE to help customers generate
preloaded shared cache.
Shared cache provides the following benefits:
• Saves disk space because all AppServer processes use the same common directory to read the file cache contents.
• Speeds up operation because all managed objects are cached into the common directory ahead of time, instead of
retrieving from the database tables on demand.
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2001. All rights reserved. 12
To run the LOADCACHE program:
1. Ensure that the database that the application server runs against produces clean SYSAUDIT runs.
If SYSAUDIT is not clean, the LOADCACHE program may fail.
2. Ensure that the user who is running the program has defined the Load Application Server Cache component to the
Permission List in User Profile.
Find or add the Utilities page for the users permission list and add the Load Application Server Cache component.
3. (For PeopleTools 8.42 and earlier only) Check your psprcs.cfg file (Process Scheduler configuration file) and set it
appropriately.
psprcs.cfg is where you specify the type of objects to cache using the EnableServerCaching parameter. For PeopleTools
8.4x, set it to 2. The LOADCACHE reads this setting and caches metadata according to the value specified in the Process
Scheduler configuration. However, do not enable shared caching for Process Scheduler. Ensure that ServerCacheMode
equals 0.
[Cache Settings] ;============================================ ; Settings for Tools that use Cache ;============================================ CacheBaseDir=%PS_SERVDIR%\CACHE ;----------------------------------------------------------------------- ; EnableServerCaching - ;0 Server File caching disabled ;1 Server File caching limited to most used classes ;2 Server File caching for all types EnableServerCaching=2 ;----------------------------------------------------------------------- ; CacheBaseDir = the base cache directory ;CacheBaseDir=%PS_SERVDIR%\CACHE ;----------------------------------------------------------------------- ; ServerCacheMode ;0 One cache directory per App Server Process ;1 Shared Cache ServerCacheMode=0
4. (For PeopleTools 8.40 and later) Select PeopleTools, Utilities, Administration, Load Application Server Cache.
5. Enter the appropriate Run Control ID.
You may have to add a new value here. The Load Application Server Cache page appears.
6. In the Output Directory, specify the directory where you want the cached metadata to be written:
Unix example> /ds1/home/testora/pt814c1/PT814U25/appserv NT example> c:\temp\
7. Select the correct process scheduler and click Run.
Navigate to PeopleTools>Process Monitor. Wait for the process to become Success. The first time that you run the
process, it may take 4 to 5 hours.
Ensure that the Run Location is set to Server.
8. Shut down your application server domain.
9. Enable shared caching with the ServerCacheMode parameter (ServerCacheMode=1) in psappsrv.cfg of the domain, and
reconfigure the domain so that the changes are reflected.
[Cache Settings] ;============================================
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2004. All rights reserved. 13
; Settings for Tools that use Cache ;============================================ CacheBaseDir=%PS_SERVDIR%\CACHE ;----------------------------------------------------------------------- ; EnableServerCaching - ;0 Server File caching disabled ;1 Server File caching limited to most used classes ;2 Server File caching for all types EnableServerCaching=2 ;----------------------------------------------------------------------- ; CacheBaseDir = the base cache directory ;CacheBaseDir=%PS_SERVDIR%\CACHE ;----------------------------------------------------------------------- ; ServerCacheMode ;0 One cache directory per App Server Process ;1 Shared Cache ServerCacheMode=1
10. Create the <PS_HOME>\<DomainName>\cache\share directory for the appropriate domain.
11. Navigate back to your Process Scheduler.
You will now have some cache generated under a new stage directory.
Unix example: /ds1/home/testora/pt814c1/PT814U25/appserv/CACHE/stage NT example: c:\temp\CACHE\stage
12. When you see a bunch of files with *.dat and *.key extensions inside the stage directory, copy the contents of the stage
directory into the share directory on your appserver domain.
13. Reboot your application server domain.
Note: For shared cache users: shared cache is intended to be used in a disciplined environment. If you use shared
cache, do not make any application changes that will affect the Meta Data objects, such as the Panel definition,
Menu structure, or Permission List. The reason: once you chose to use shared cache, the cache files are all marked
as read only. The AppServer processes cannot update the cache files for any delta, and each access to the
changed Meta Data will result in a costly database access.
The preferred way to use LoadCache files is to copy the entire cache file set to the individual AppServer process (that is,
seeding the cache directory with the prebuilt LoadCache fileset). Multiple copies of the cache file in each directory consume
disk space, but enable the process to update the cache file content. This flexibility enables you to make application changes but
does not affect performance.
PRELOAD CACHE (PEOPLETOOLS 8.48 AND LATER)
To improve performance, the application server uses a caching mechanism that keeps commonly used objects in memory or file
form on the application server to reduce the need for a database request each time that you access a component or page. As you
access more pages and components, more data is stored in the application server cache. However, if you have not already
accessed a page, for example, that page won’t exist in the current cache, and you may experience a slower response time as the
system requests the page from the database. To prevent this initial performance degradation, in PeopleTools 8.48 and later, you
can elect to preload files or memory cache with commonly used components.
Preloading cache involves creating a project containing commonly used components and then referring to these projects in the
PSADMIN settings PreloadMemoryCache and PreloadFileCache. To understand and use this feature, see the PeopleBook:
System and Server Administration under the section “Configuring an Application Server Domain to Preload Cache.
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2001. All rights reserved. 14
PSAPPSRV INSTANCES
Keep the number of PSAPPSRV instances low. PSAPPSRV must cache PeopleSoft meta-objects in order to be effective. Too
many PSAPPSRV process instances make it difficult to fully cache all of them. Too many process instances become even more
troublesome in a Win2000/NT Tuxedo domain because the Bulletin Board process tries to use the same PSAPPSRV process ID
(not using the round robin method as in UNIX).
We recommend starting with 1.5 to 3 PSAPPSRV processes per CPU. If the application server machine is 100 percent utilized
under load, reduce the number of PSAPPSRV processes until there is some idle CPU. If as a result, there is significant queuing,
then you may need additional application server hardware.
In general, it is best to allow a small amount of queuing during peak working hours. If the app server machine is more than 80
percent loaded, then we do not recommend spawning an extra PSAPPSRV instance to handle high-volume workload. Every
time that a new PSAPPSRV process starts, the process must establish its cache, which takes time, CPU, and memory. Use an
appropriate "min" setting to indicate how many PSAPPSRV processes are required for proper throughput. However, if the app
server machine has sufficient headroom for better utilization, then you can use spawning to avoid excessive queuing.
To disable spawning, use the same value in the Min Instances and Max Instances fields.
USE PARALLEL BOOT
Prior to PeopleTools 8.48, server processes in a domain started serially when the domain was booted. PeopleTools 8.48 and
later provide an option for parallel booting. We recommend using parallel booting to significantly speed up the process of
starting a domain.
Note: In PeopleTools 8.48, when PeopleSoft Performance Monitor is enabled, parallel booting may not be effective
on Linux, AIX, HP/UX, and Tru64 due to limitations in Java 1.4.2 libraries. A potential workaround is to set the
following application server JVM option:
-Djava.security.egd=file:/dev/urandom
SET APPLICATION SERVER JVM OPTIONS
Customers using functionality that does a lot of processing in Java (for example, XMLPublisher) should consider setting the
JVM options for the application server. The default JVM options may not be optimal. In that case, we recommend adding the
following setting to psappsrv.cfg or psprcs.cfg (in addition to the already existing options):
-server -Xms128m -Xmx512m
CONFIRM THAT THE REQUIRED BEA TUXEDO VERSION AND MINIMUM
ROLLING PATCH ARE INSTALLED
Confirm that the required Bea Tuxedo version and the minimum rolling patch are installed specific to the PeopleTools release
and operating system from the following PeopleSoft Customer Connection path:
PeopleSoft Customer Connection, Supported Platforms (Implement, Optimize + Upgrade, Implementation Guide, Supported Platforms, PeopleSoft Enterprise)
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2004. All rights reserved. 15
You can verify the installed Bea Tuxedo rolling patch from the following rolling patch level file:
<TUXDIR>\udataobj\patchlev
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2001. All rights reserved. 16
Chapter 3 - Web Server Guidelines
CONFIRM THAT THE REQUIRED WEB SERVER VERSION, SERVICE PACK, AND
JRE VERSION ARE INSTALLED
Confirm that the required web server version, service pack, and JRE version are installed specific to the PeopleTools release
and operating system from the following PeopleSoft Customer Connection path:
PeopleSoft Customer Connection, Supported Platforms (Implement, Optimize + Upgrade, Implementation Guide, Supported Platforms, PeopleSoft Enterprise)
USE JOLT SESSION POOLING (PEOPLETOOLS 8.48 AND LATER)
In PeopleTools 8.48 and later, Jolt Session Pooling is enabled by default. Without Jolt Session Pooling, each user session
requires a dedicated Jolt session between web server and app server, which consumes valuable system resources.
With Jolt Session Pooling, the Jolt sessions are shared among users, which reduces system resource usage. In our intenal test on
a 2-CPU Windows box, we were able to run 500 users with Jolt Session Pooling versus only 280 users without Jolt Session
Pooling.
To check the Jolt Session Pooling setting, select web.xml under the appropriate directory for each web server platform.
To verify if Jolt Session Pooling is enabled, check the web.xml file:
<servlet> <servlet-name>psc</servlet-name> <servlet-class>psft.pt8.psc</servlet-class> . . . <init-param> ... <param-name>joltPooling</param-name> <param-value>true</param-value>
USE STRICT FAILOVER AND WEIGHTED LOAD-BALANCING (PEOPLETOOLS 8.48
AND LATER)
Prior to PeopleTools 8.48, when a host failed, the load was redirected to the next host on the server list. Redirection caused
system load to increase significantly on that host and made the load unstable. With PeopleTools 8.48 and later, you can specify
a failover target for each host and thus distribute the failover load.
You can also specify a weight for each host so that more load is directed to more powerful machines. To configure strict
failover and weighted load balancing, edit psserver property in configuration.properties. For example:
psserver=appserver1:9000#3[appserver99:10010],appserver2:9010#1[appserver98:10010]
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2004. All rights reserved. 17
In this case, appserver1 would receive three times more requests than appserver2. If appserver1 fails, the requests will be routed
to appserver99. The load may not always be distributed per the weights, especially when the load is light.
ORACLE APPLICATION SERVER (ORACLE AS)
Set JVM Heap Size to 256MB or Higher
The Java virtual machine heap space is the memory region where the Java objects (both live and dead) resided. When the Java
heap runs out of space, the Java Garbage Collector is invoked to deallocate unreferenced objects and free up more space for the
program to continue its operation. The JVM cannot service user requests during garbage collections. Many customers have their
JVM heap size set to a minimum heap size of 64MB and maximum size of 256MB. Setting the JVM heap size to a greater
minimum value (preferably equal to the maximum value) avoids the performance hit incurred by dynamically growing the JVM
and improves predictability; it also lessens the frequency of JVM garbage collection. To set the heap size for PeopleSoft
Internet Architecture, open opmn.xml in <ORACLE_HOME>\opmn\conf for editing. Locate the process-type node for your
PeopleSoft Internet Architecture installation and add this line to the value attribute of the java-options node:
-Xms256m –Xmx256m –verbosegc
The –verbosegc switch enables you to monitor the amount of heap usage and the time Oracle AS took for garbage collections
so that you can make further adjustments if necessary. The garbage collection details are written to the log file
<ORACLE_HOME>\opmn\logs\OC4J~<PIA Install Name>~default_island~<jvm instance number>. Depending on which
applications you are using, you may need to set the heap size even higher.
Capture JOLT Request Timing Traces
To collect JOLT request timing traces for an Oracle AS installation of PeopleSoft Internet Architecture:
1. Using the Custom Properties page of the current WebProfile, add a String property named auditPWD and set the value.
You will use this password in a later step.
2. Stop the webserver.
3. Open opmn.xml in <ORACLE_HOME>\opmn\conf for editing, locate the process type node for your PeopleSoft Internet
Architecture installation, and add -Dloggersize=0 to the value attribute of the java-options node.
4. Restart the webserver.
5. Before logging on, submit the following URL to reset the existing log: http://<hostname:port
number>/psp/ps/?cmd=resetlog&pwd=<password from step 1>.
A screen of messages appears on the browser window. That's the log details that has been collected.
6. Point to the logon URL and logon as usual.
7. After logging on, point to the previously mentioned URL again (http://<hostname:port
number>/psp/ps/?cmd=resetlog&pwd=<password from step 1>) to retrieve the log.
8. Copy and paste the log from the browser to a text file.
For more comprehensive data, repeat steps 4 through 7.
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2001. All rights reserved. 18
Modify Apache KeepAlive Setting
Depending on the expected interval between your users’ requests, it may be beneficial to change the Apache KeepAlive
Timeout from 15 to 30 seconds and set the Maximum KeepAlive Requests to zero. Open
<ORACLE_HOME>\Apache\Apache\conf\httpd.conf for editing. Locate the KeepAlive, MaxKeepAliveRequests, and
KeepAliveTimeout lines and set them to On, 0, and 30, respectively. Because KeepAlive controls how long OHS retain the
connection between the client and OHS, it is possible that if there are a large number of concurrent users, increasing KeepAlive
from 15 to 30 will negatively impact performance because there will be fewer available connections to service the requests.
You should change this setting only if you see excessive CPU consumption of the OHS process (look for apache.exe in your
Task Manager in Windows or do ps –ef | grep httpd in UNIX) and you expect a stable number of users making
requests at interval to be longer than the default setting of 15 seconds. When you increase KeepAlive, you may need to increase
MaxClients or ThreadsPerChild (see the next section) to ensure incoming requests are not starving for connections.
Modify ThreadsPerChild and Oc4jCacheSize
For Windows, the ThreadsPerChild setting in <ORACLE_HOME>\Apache\Apache\conf\httpd.conf controls the number of
concurrent threads (requests) that the Oracle HTTP Server can service. In most cases, the default value of 150 is sufficient.
For UNIX, the equivalent setting is MaxClients. In most cases, the default value of 150 is sufficient.
For Windows, if you decide to increase ThreadsPerChild, you should set the Oc4jCacheSize to the same value. This setting
controls the number of connections between the Oracle HTTP Server and OC4J. Setting the Oc4jCacheSize to the same value
as ThreadsPerChild should provide the optimal performance. To change this value, open
<ORACLE_HOME>\Apache\Apache\conf\mod_oc4j.conf and search for Oc4jCacheSize. If the entry is not there, add the
following line above the first Oc4jMount entry (this assumes that you have increased ThreadsPerChild to 150):
Oc4jCacheSize 150
You do not need to change this setting for UNIX.
Disable HTTP Request Logging in mod_oc4j
Open mod_oc4j.conf in <Apache_home>\conf for editing. Locate the appropriate <virtual host> section and comment out the
line beginning with TransferLog.
Generate Heap Dumps on OutOfMemoryError
If you are using JDK 1.4.2_12 or later, there is a new option to dump the JVM heap if you are running into
OutOfMemoryError. You can add this comment to the JVM options:
–XX:+HeapDumpOnOutOfMemoryError –XX:HeapDumpPath=/tmp
If there is an OutOfMemoryError, the contents of the heap will be dumped to a file in the directory specified by:
–XX:HeapDumpPath
The heap dump file can be read by the Heap Analysis Tool (HAT), jhat (in JDK 6), or a profiler that supports the binary heap
dump format. The heap dump file provides valuable information to Oracle development on what’s causing the
OutOfMemoryError.
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2004. All rights reserved. 19
WEBLOGIC
Log level Setting (PeopleTools 8.49 and Later)
In Weblogic 9.2, log file severity level has been set to Info by default. The severity level produces too much logging
information, and the Weblogic server must index all logs that caused performance degradation in internal performance tests.
For the server log type, only three options are available for the log severity field: Debug, Info, and Warning. We recommend
that you set the log file severity level to Warning and set the log filter to Critical. These settings will improve performance by
reducing the overhead of log indexing, rotation, and so on.
Log severity levels and log filters are independent of one another. This means setting log filters is not mandatory. In order to set
the log severity (for server log) to Critical, you must use the filter because the log severity field does not provide Critical as one
of the options. To improve performance, you can set the log severity of three other types of logs (Standard out, Memory buffer,
and Domain log Broadcaster) to Critical without using a filter.
We recommend that you select the Redirect stdout logging enabled option. When you enable this option, the stdout of the JVM
in which a WebLogic Server instance runs is redirected to the WebLogic logging system. If you do not select this redirect
option, the stdout content is published to the server terminal console and performance is compromised.
To configure recommended logging level:
a). Log in to the Weblogic Admin console and follow this path to create a filter:
i. Domain -> configuration -> Log Filter -> click the Lock& Edit button ->New ->
Name=Critical -> Finish
ii. Click the Critical link -> Edit -> Enter (SEVERITY=Critical) -> Finish -> Save ->
Click Activate changes
To configure logging levels:
iii. Follow this navigation: Environment ->Servers ->PIA(admin) ->Logging ->
Advanced ->click the Lock& Edit button
iv. Use these log file settings:
1. Severity level= Warning
2. Filter= Critical
3. Ensure that the Redirect stdout logging enabled check box is enabled.
v. Use these standard out settings:
1. Severity level= Critical
2. Filter= Critical
vi. Use these domain log broadcaster settings:
1. Severity level= Critical
2. Filter= Critical
vii. Use these memory buffer settings:
1. Severity level= Critical
2. Filter= Critical
viii. Click Save and then click Activate changes.
Confirm That the Posix Performance Pack is Loaded
Under normal circumstances, WebLogic should use the Posix Performance Pack, and this Posix Performance Pack will use the
native OS's socket implementation. When the Performance Pack is not loaded properly, generic socket implementation is used.
However, generic socket implementation is not efficient and could cause performance issues or socket stability problems.
To verify that your WebLogic Server is loading the Performance Pack correctly, check your WebLogic output message and
search for the reference to NT/Posix Performance Pack.
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2001. All rights reserved. 20
Set Thread Count
For WebLogic, please refer to solution 201061979 on Customer Connection for instructions to configure the Thread Count.
Note: For Unix platforms, when you increase the ThreadCount, you are allowing more socket connections to be
established. Therefore, you must increase the number of file descriptors (maxfiles and maxfiles_lim) accordingly. To
check the current file descriptor value, use the following command:
csh –c “limit –h descriptors”
You must also raise the number of threads limit per process (max_thread_proc) in UNIX. As for Windows, these are implicitly
limited by other system resources such as memory, and there is no explicit parameter that controls them.
Confirm JRE Version
Confirm from BEA's platform page that the installed JRE is certified (may require OS patches). Here is the path to the BEA’s
platform page:
http://e-docs.bea.com/platform/suppconfigs/index.html
Note: For Linux, it is necessary to set an environmental variable to work around a JRE bug.
$ export J2SE_PREEMPTCLOSE=1
The rationale behind this setting is that the current Linux is still using the old UNIX network/thread semantics, and
the close() is not preemptive as in Solaris and AIX. This setting applies to JRE1.2.2, 1.3 and 1.3.1.
Set JVM Heap Size to 256MB or Higher
Many customers have their JVM heap size set to a minimum heap size of 64MB and maximum size of 256MB. Depending on
which applications you are using, you may need to set the heap size even higher. Setting the JVM heap size to a larger
minimum value (preferably equal to the maximum value) avoids the performance hit incurred by dynamically growing the JVM
and improves predictability. Increasing the setting also lessens the frequency of JVM garbage collection.
See the following JVM Heap Size section to learn how to change the heap size for a specific web server.
Set OS File Descriptor to 100*ThreadCount
A file descriptor is required for every file that is opened, every *.class file read in by WebLogic, every jolt connection
PIA/Portal make to the appserver, every connection that has to open back to a client, and any other socket-based
communication that was occurring on that machine.
To raise the file descriptors for UNIX, use the following command:
ulimit –n 4096
In Windows NT/2000, there is not an explicit parameter for the number of file descriptors. The parameter is implicitly limited
by hardware resources (mainly system memory).
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2004. All rights reserved. 21
Lower OS TCP/IP Cleanup/Timeout Settings
Socket-based applications that are opening and closing hundreds or thousands of sockets must have their sockets marked as
closed. Once a process closes a socket, it is marked as closed only until the OS (based on a cleanup/flush timeout) makes that
socket available again. The default value for this is 11 minutes. Lower this value to 1 minute.
Planet PeopleSoft implements a 1-minute TCP wait time.
BEA also provides informationo on this topic. See the Reducing TCP Wait Time section to learn how to change the TCP Wait
Time for a specific OS.
Monitor JVM Garbage Collection
The Java virtual machine heap space is the memory region where the Java objects (both live and dead) reside. When the Java
heap runs out of space, the Java Garbage Collector invokes to deallocate the dead objects and free up more space for the
program to continue its operation. The JVM cannot service user requests during garbage collections.
To monitor the amount of heap usage and the time that WebLogic takes for the garbage collection, you can add the verbosegc
switch to the setEnv.cmd script file. You have to start the WebLogic from the command line -- startPIA.cmd (instead of an NT
service) to see the GC output. In setEnv.cmd:
SET JAVA_OPTIONS=-hotspot –Xms256m –Xmx256m –verbosegc
Here is a sample output of the GC:
Sat Nov 24 22:15:34 PST 2001:<I> <WebLogicServer> Invoking garbage collection Sat Nov 24 22:15:34 PST 2001:<I> <GC> GC: Before free/total=46867368/67108856 (69%) <GC: freed 249213 objects, 15440712 bytes in 396 ms, 95% free (51334096/53687088)> <GC: init&scan: 6 ms, scan handles: 105 ms, sweep: 124 ms, compact: 161 ms> <GC: 0 register-marked objects, 140 stack-marked objects> <GC: 1 register-marked handles, 559 stack-marked handles> <GC: refs: soft 0 (age >= 32), weak 0, final 559, phantom 0> <GC: compactHeap: blocks_moved=249506> <GC: 0 explicitly pinned objects, 35 conservatively pinned objects> <GC: last free block at 0x02A11B2C of length 35906768, is at end>
To minimize performance degradation from Garbage Collection, use the command line option -noclassgc. This option inhibits a
thread that would normally clear out unused classes (thus saving the load incurred by that thread).
The goals of tuning your heap size are twofold: minimize the amount of time that you spend doing GC while maximizing the
amount of clients that you can handle at a given time.
Disable Servlet Reload
In %WLS_HOME%/<peoplesoft web domain>/config.xml, there is a parameter (ServletReloadCheckSecs) that dictates how
often WebLogic checks whether a servlet has been modified, and if so reloads it:
<WebAppComponent Name="PORTAL" ServletReloadCheckSecs="-1" Targets="PIA" URI="PORTAL" />
In a production environment, the servlets are not modified. Therefore, checking and reloading only incurs unnecessary work.
Thus, you should set ServletReloadCheckSecs to –1 for each of the components. (If the field is not present, the value defaults to
0 – always reload, which is undesirable. If this is the case, introduce the field with a value of –1.)
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2001. All rights reserved. 22
Capture JOLT Request Timing Traces
To capture JOLT request timing traces:
1. Using the Custom Properties page of the current WebProfile, add a String property named auditPWD and set the value.
You will use this password in a later step.
2. Stop the webserver.
3. In the weblogic domain directory, open startPIA.cmd/startPIA.sh and add a command-line option -Dloggersize=0 to
the firing of the java process, like the following:
%JAVA_HOME%\bin\java" %JAVA_OPTIONS% -classpath %CLASSPATH% -
Dweblogic.Domain=%DOMAIN_NAME% -Dweblogic.Name=%SERVER_NAME% -Dbea.home="%BEA_HOME%" -Dweblogic.management.password=%SYSTEMPASSWORD% -Dweblogic.ProductionModeEnabled=%STARTMODE% "-Djava.security.policy==%BEA_HOME%/wlserver6.1/lib/weblogic.policy" -Dweblogic.management.discover=%DISCOVERY_MODE% -Dloggersize=0 weblogic.Server
4. Restart the webserver
5. Before logging on, submit the following URL to reset the existing log:
http://<hostname:port number>/psp/ps/?cmd=resetlog&pwd=<password from step 1>
A screen of messages appears on the browser window. The messages represent the log that has been collected.
6. Point to the logon URL and logon as usual.
7. After logging on, point to the previous URL again (http://<hostname:port
number>/psp/ps/?cmd=resetlog&pwd=<password from step 1>) to retrieve the log.
8. Copy and paste the log from the browser to a text file.
For more comprehensive data, repeat steps 4 through 7.
WEBSPHERE
Log Level Setting (PeopleTools 8.49 and Later)
In Websphere 6.1.0.3, log detail level has been set as Info by default. This setting produces too much logging data to logfile,
which degrades performance in internal performance tests. We recommend changing the log detail level from *=info to *=
severe to improve the performance up to 20 percent.
Log in to the Websphere admin console and navigate to “Troubleshooting> Logs&Trace> server1>Change Log Detail Levels.”
Set the value to *=severe.
We recommend that you disable the diagnostic trace log, which reduces the amount of logs written in webserver log files.
Log in to the Websphere admin console and navigate to “Troubleshooting > Logs&Trace > server1 > Diagnostic trace. Clear
the Enable log check box.
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2004. All rights reserved. 23
Ensure That JIT is Enabled and Class Verification is Skipped
Ensure that JIT is enabled by default in the Admin console. If you disable the JIT compiler, throughput decreases noticeably.
Therefore, for performance reasons, keep JIT enabled.
JVM property: -Xverify:none. When using this value, the class verification stage is skipped during class loading. By using -
Xverify:none with the just in time (JIT) compiler enabled, performance test indicate that startup time is improves up to 15
percent.
Setup and Configuration
Note: PeopleTools 8.4 supports a native http server within WebSphere at port 9080 and 9443, for http and https,
respectively. Use of IBM Http Server, which listens at port 80 or 443 for http or https, is optional.
Note: Before you begin the installation, review the PeopleSoft Platforms Database to make sure that you are
installing WebSphere into a supported environment.
For detailed installation instructions, especially the required e-fixes needed for WebSphere, see the “WebSphere Install”
document posted on Customer Connection.
Note: Install WebSphere eFixes in any order. To remove eFixes, roll back efixes in the reverse order (from which
you applied them).
Set Thread Count
1. Step 1.
Locate server.xml at:
%PS _HOME%\webserv\{profile_name}\config\cells\{cell_name}\nodes\{node_name}\servers\server1\ and modify the
thread pool maximumSize for web container,
<services xmi:type="threadpoolmanager:ThreadPoolManager" xmi:id="ThreadPoolManager_1208430577007" enable="true"> ... ... <threadPools xmi:id="ThreadPool_1208430577008" minimumSize="10" maximumSize="50" inactivityTimeout="3500" isGrowable="false" name="WebContainer"/> ... ... </services>
2. Step 2.
Login to WebSphere admin console and navigate to: servers -> Application server -> server1 -> Thread Pool ->
WebContainer and modify the thread pool maximumSize for the web container.
Set JVM Heap Size to 256MB or Higher and Monitor JVM Garbage Collection
(Refer to the WebLogic section on how to decide the JVM heap size.)
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2001. All rights reserved. 24
In %WAS_HOME%/config/server-cfg.xml, locate the following lines:
<jvmSettings xmi:id="JavaVirtualMachine_1" classpath="${WAS_ROOT}/lib/bootstrap.jar;${WAS_ROOT}/properties;${WAS_ROOT}/installedApps/peoplesoft/PORTAL/WEB-INF/lib/entappletbase.jar;${WAS_ROOT}/installedApps/peoplesoft/PORTAL/WEB-INF/lib/entapplethttp.jar;${WAS_ROOT}/installedApps/peoplesoft/PORTAL/WEB-INF/lib/entappletp10.jar;${WAS_ROOT}/installedApps/peoplesoft/PORTAL/WEB-INF/lib/entappletp12.jar;${WAS_ROOT}/installedApps/peoplesoft/PORTAL/WEB-INF/lib/entappletp5.jar;${WAS_ROOT}/installedApps/peoplesoft/PORTAL/WEB-INF/lib/entappletp7.jar;${WAS_ROOT}/installedApps/peoplesoft/PORTAL/WEB-INF/lib/entappletssl.jar" bootClasspath="" verboseModeClass="false" verboseModeGarbageCollection="false" verboseModeJNI="false" initialHeapSize="256" maximumHeapSize="256" runHProf="false" hprofArguments="" debugMode="false" debugArgs="" genericCommandLineArgs="com.ibm.ws.runtime.StandardServer" disableJIT="false"></jvmSettings>
Note that you can also turn on verbosegc here (verboseModeGarbageCollection).
With IBM Websphere 5, you can go to the administration console (http://:9090/admin/) to change settings. Log in with a blank
user ID. On the left Navigation, select Servers -> Application Servers. Select your server name (default is server1). Click
Process Definition under Additional Properties. Click Java Virtual Machine under additional Properties. Here you can change
all the parameters where you need verbosegc and so on.
Other JVM Options
Insert other JVM options if needed (for example, noglassgc) in the server-cfg.xml file rather than the
startup script (startserver). For example:
<processDefinition xmi:type="server:JavaProcessDef" xmi:id="ProcessDef_1" executableName="${JAVA_HOME}/bin/java" commandLineArguments="-noclassgc" workingDirectory="${WAS_ROOT}/bin" executableTargetKind="JAVA_CLASS" executableTarget="com.ibm.ws.bootstrap.WSLauncher"></processDefinition>
Disable Servlet Reload
The servlet reload parameters in WebSphere is located in %WAS_HOME%/<peoplesoft web
domain>/[PORTAL/PSIGW/PSINTERLINKS]/WEB-INF/ibm-web-ext-xmi (usually this is the first line):
(In Websphere 5, the xmi file is located here:
%WAS_HOME%\AppServer\config\cells\\applications\peoplesoftWAS.ear\deployments\peoplesoftWAS\PSINTERLINKS\W
EB-INF.)
<webappext:WebAppExtension xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:webappext="webappext.xmi" xmlns:webapplication="webapplication.xmi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmi:id="WebAppExtension_1" reloadInterval="0" reloadingEnabled="false" fileServingEnabled="true" directoryBrowsingEnabled="true" serveServletsByClassnameEnabled="false">
(In the PSINTERLINKS/WEB-INF directory, such file may not exist. If this is the case, create a file called ibm-web-ext.xmi
with the following content:
<webappext:WebAppExtension xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:webappext="webappext.xmi" xmlns:webapplication="webapplication.xmi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2004. All rights reserved. 25
xmi:id="WebAppExtension_1" reloadInterval="0" reloadingEnabled="false" fileServingEnabled="true" directoryBrowsingEnabled="true" serveServletsByClassnameEnabled="false"> <defaultErrorPage xsi:nil="true"/> <additionalClassPath xsi:nil="true"/> <webApp href="WEB-INF/web.xml#WebApp_1"/> <extendedServlets xmi:id="ServletExtension_1"> <extendedServlet href="WEB-INF/web.xml#Servlet_1"/> </extendedServlets> </webappext:WebAppExtension>
Also copy the file ibm-web-bnd.xmi from the PORTAL/WEB-INF directory.)
Moreover, %WAS_HOME%/<peoplesoft web domain>/META-INF/ibm-application-ext-xmi should look like this (with the
reloadInterval line deleted):
<applicationext:ApplicationExtension xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:applicationext="applicationext.xmi" xmlns:application="application.xmi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmi:id="Application_ID_Ext" reloadInterval="0"> <!-- DELETE THIS LINE <reloadInterval xsi:nil="true"/>DELETE THIS LINE --> <application href="META-INF/application.xml#Application_ID"/> </applicationext:ApplicationExtension>
Refer to the same topic in WebLogic for further information.
Capture JOLT Request Timing Trace
To collect JOLT request timing traces for WebSphere:
1. Using the Custom Properties page of the current WebProfile, add a String property named auditPWD and set the value.
You will use this password in a later step.
2. Stop the webserver.
3. In %WAS_HOME%/config/server-cfg.xml, locate the following lines:
<processDefinition xmi:type="server:JavaProcessDef" xmi:id="ProcessDef_1" executableName="${JAVA_HOME}/bin/java" commandLineArguments="-Dloggersize=0" workingDirectory="${WAS_ROOT}/bin" executableTargetKind="JAVA_CLASS" executableTarget="com.ibm.ws.bootstrap.WSLauncher">
4. Restart the webserver.
5. Before logging on, submit the following URL to reset the existing log: http://<hostname:port
number>/psp/ps/?cmd=resetlog&pwd=<password from step 1>.
A screen of messages appears on the browser window. These messages are the log that has been collected.
6. Point to the logon URL and log on as usual.
7. After logging on, point to the previous URL again (http://<hostname:port
number>/psp/ps/?cmd=resetlog&pwd=<password from step 1>) to retrieve the log.
8. Copy and paste the log from the browser to a text file.
For more comprehensive data, repeat steps 4 through 7.
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2001. All rights reserved. 26
Using Resource Analyzer
The Resource Analyzer is a new tool for the Advanced Single Server Edition of WebSphere Application Server. For
information on using the Resource Analyzer, see the Version 4.0 WebSphere Application Server InfoCenter for the Advanced
Edition at http://www.ibm.com/software/webservers/appserv/infocenter.html.
To use the Resource Analyzer with the Advanced Single Server Edition of WebSphere:
1. Install the PmiSingleServerBean.ear file (available under the %WAS_HOME%\installableApps directory).
2. Go to the %WAS_HOME%\bin directory.
3. Enter this command:
seappinstall-install ..\installableApps\PmiSingleServerBean.ear -ejbdeploy false
4. Click Enter when prompted for the Default data source JNDI name and the JNDI name.
Clicking Enter enable you to use of default values as required by the Resource Analyzer.
5. Restart the application server.
6. Start the Resource Analyzer.
7. Go to the %WAS_HOME%\bin directory.
8. Enter this command: ra hostname 900 AES.
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2004. All rights reserved. 27
Chapter 4 - Web Browser Configuration
Take advantage of the browser’s caching ability to reduce unnecessary checking and downloading of the same Internet objects
within the online transaction session. Here are the Internet objects that most likely remain unchanged during an online session:
• Graphics objects
• Style Sheets
• Java Scripts
• Some HTML pages (such as the PeopleSoft Internet Architecture login page)
The following web browser settings are the recommended configurations. These configurations are usually the default settings
of the respective browsers. Verify these configurations to ensure correctness.
Microsoft Internet Explorer
Here is the configuration recipe:
Internet Option->Temporary Internet Files-> Settings, Automatically
Netscape Browser
Here is the configuration recipe:
Edit->Preferences->Advanced->Cache->Once per session
HTTP 1.1 Compliant Web Browser
Only HTTP 1.1-compliant web browsers request compressed files. Web browsers that are not HTTP 1.1 compliant request and
receive the files uncompressed; therefore, the Web Server cannot send any compressed HTML files to the browser (despite that
the configuration.properties file has the Compress Response switch turned on.)
Most new browsers since 1998 and 1999 have been equipped to support the HTTP 1.1 standard known as "content-encoding."
Essentially, this means that the browser indicates to the server that it can accept content encoding, and if the server is capable, it
will then compress the data and transmit it. The browser decompresses the data and then renders the page.
This performance feature was added for the web browsers that are using the slower bandwidth medium, such as dialup
connections or 56K lines.
Here is the configuration recipe to verify if Internet Explorer is configured to use the HTTP 1.1 protocol:
1. If using IE 6 or higher, select Tools menu -> Internet Options.
2. Select the Advanced tab.
3. Under HTTP 1.1 settings, verify that Use HTTP 1.1 is selected.
Currently the following browsers are HTTP 1.1 compliant:
• Internet Explorer version 6, 7
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2001. All rights reserved. 28
• Firefox 1.5, 2.0
• Mozilla 1.7
• Netscape 7.2, 8.1
• Safari 2.0.4
Confirm That the Required Browser Version Is Installed
Confirm that the required browser version to be installed is specific to your PeopleTools release and operating system from the
following PeopleSoft Customer Connection path:
PeopleSoft Customer Connection, Supported Platforms (Implement, Optimize + Upgrade, Implementation Guide, Supported Platforms, PeopleSoft Enterprise)
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2004. All rights reserved. 29
Chapter 5 - Additional Configurations
BROWSER COMPRESSION
From PeopleTools 8.44 on, you can enable compression between web server and browser by selecting the Compress Response
check box via PeopleSoft Internet Architecture. Go to PeopleTools->Web Profile->Web Profile Configuration, select the web
profile that you are using, and clear the Compress Response check box to turn off compression. Gzip and Compress are
supported. The check box is selected by default.
If the Compress Response References check box is selected, compression of additional resource files from web server to the
browser is enabled. Only files that have their mime types specified in the Compress Mime Types field are compressed. Gzip
and Compress are supported. The check box is cleared by default because there were some versions of Internet Explorer with
certain settings that didn't like javascript and css in compressed format. However, that is a rare scenario; therefore, in general,
this check box should be selected.
The Compress Mime Types text field specifies a comma-delimited list of the MIME-type objects that should be sent in
compressed form to the browser. Note that this is applicable only when Compress Response References is set to true. Gzip and
Compress are supported. Here is the default: application/x-javascript,text/javascript,text/css,text/html.
Note: The main purpose of compression is to reduce the amount of data to be transmitted. However, compression
comes at a price: extra CPU processing time. In cases where high-speed links are used and the gain in
transmission time does not justify the loss in CPU processing time, turn off compression.
Note: For PeopleTools 8.41 and earlier, the compression settings would cause an error for certain updates of
Internet Explorer 6.0. In particular, the PeopleSoft Internet Architecture menu may disappear when a user opens a
PeopleSoft Internet Architecture page. Therefore, you should turn off these settings. This problem does not occur in
PeopleTools 8.42 and later.
Note: Some query entries are truncated when IE tries to open queries in Mircosoft Excel. A workaround (for
PeopleTools 8.43 and later) is to turn off query compression by clearing the Compress Query check box, which
turns off JUST queries.
CACHING
Caching improves system performance by reducing service requests from the web server to the application server. For
PeopleTools 8.44 and later, cache settings are configured via PeopleSoft Internet Architecture. Go to PeopleTools->Web
Profile->Web Profile Configuration, select the Web Profile that you are using, and then select the Caching tab. If Cache Portal
Objects is selected, the portal servlet (psp) will cache the following objects in web server memory:
• Portal Registry
• Node (Remote and Local)
• Content Reference
• Template (Static only)
If Cache Portal Objects is selected, object changes won't take effect until the objects become stale and are refreshed (see Cache
Stale Interval setting below) or you restart the web server. The check box is selected by default
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2001. All rights reserved. 30
The Cache Stale Interval is the amount of time, in seconds, before portal cache is considered stale and updated with the latest
copy from the application server. In other words, this is the amount of time before changes to cached objects take effect. This
setting applies to the same objects as Cache Portal Objects. Here is the default setting: 86200 (24 hours).
The portal automatically throws away all cache entries in memory after the number of requests specified in Cache Purge All Hit
Count. This setting applies for all websites on this web server. Setting this value to -1 disables hitcount purging. The default
setting is 1000.
The portal caches proxied javascripts to improve performance if the Cache Proxied JavaScripts check box is selected. The
check box is selected by default.
Target content is cached in memory when the TargetContent tag in the template specifies that the target should be cached. Only
static content should appear in a template with a cached target tag. The TargetContent tag should look like this:
<TargetContent Name="TransactionContent"><Cache Scope="application" Interval="1200" >dummy</Cache></TargetContent>
You can cache pagelets using the same mechanism.
The Cache Target Content check box should be selected to allow caching of target content. Clearing this check box disables all
target content caching in the portal servlet, even if the target tag specifies cached content. This check box is selected by default.
Homepages can also be cached on each user's browser. This means that the browser does not access the web server after the
homepage is initially retrieved. You can turn this feature on or off, and also adjust the specific time interval that must pass
before the web server is accessed again to get a "fresh" homepage. In any case, if a user clicks the browser's Refresh button, the
homepage is accessed from the web server again, overwriting the homepage cached on the browser.
Caching the homepage is beneficial in either a production or development environment. We recommend that you turn on
homepage cache.
The following table lists the default values of the parameters in PeopleSoft Internet Architecture:
Cache-Related Properties and Default Values
Cache Homepage=selected
Homepage Stale Interval=1200
Homepage Stale Interval is measured in seconds.
Note: The Browsers section specifies which web browser that you can use with homepage caching. Verify that your
choice of browser is enabled for caching.
NAVIGATION PAGES CACHING
As with homepages, navigation pages can be cached on each user's browser. Caching on each browser improves user response
time in traversing between cached menu pages. The Portal Administrator can set system-wide options for navigation cache by
using the Define Personalizations page and modifying the value for METAXP. We recommend that you set the METAXP to a
high value. Doing so will keep the menu pages inside the browser cache. If your menu pages are not going to change frequently,
set METAXP to 10080 (one week) or more.
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2004. All rights reserved. 31
Go to PeopleTools-> Personalization->.Personalization Options. Enter PPTL (PeopleTools) as the Option Category level value.
Select the Format tab and then select Set Option Default Value in the METAXP row. Key in the appropriate value and click
OK. Then click save when being brought back to the previous screen. Note that a change to METAXP is picked up by the
application server immediately; however, because the users’ browsers already have cache control set by the previous value of
METAXP, you must delete browser cache for the new METAXP to take effect.
Users can override the METAXP value on their individual browser sessions. After logging on, go to My Personalizations, then
click the Personalize Option button for General Options. Change the METAXP value by entering a new value for Time page
held in cache and then click OK.
Do not use navigation caching during development time because any newly added menus will not be reflected in the cache. Use
navigation cache only in production systems.
HTTP KEEPALIVE
HTTP KeepAlive is intended to maintain a persistent socket connection between the web browser and the web server so that no
new connections are required when the HTML pages refer to other HTML objects.
However, keeping the socket connection persistent occupies a socket pair between the browser and web server. When the
KeepAlive timing is set too long, the following problems occur:
• The web server must manage many idle connections.
• Then number of new connections available is reduced.
We generally advise that those with PeopleTools 8.4x turn on KeepAlive. KeepAlive is the default for Oracle Application
Server, WebLogic, and WebSphere.
REDUCING TCP WAIT TIME
The default TCP Wait Time for both NT and most UNIX operating systems is 4 minutes, which is too long for PeopleSoft
Internet Architecture usage and tends to leave too many socket connections staying in the TIME_WAIT state.
By shortening the TCP Wait Time, the socket can be recycled more efficiently.
For Windows NT
Use the registry editor, regedit, and create a REG_DWORD named TcpTimedWaitDelay under
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters. Set the value to 60 secs (seconds).
For AIX
To see the current TCP_TIMEWAIT value, run the following command:
/usr/sbin/no –a | grep tcp_timewait
To set the TCP_TIMEWAIT values to 15 seconds, run the following command:
/usr/sbin/no –o tcp_timewait =1
The tcp_timewait option is used to configure how long connections are kept in the timewait state. It is given in 15-second
intervals, and the default is 1. Use the default or change the value to 2 for slower networks.
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2001. All rights reserved. 32
Note: Be careful when you use no command, which performs no range checks and instead accepts all values for
the variables. If used incorrectly, the no command can cause your system to become inoperable.
The no command operates only on the currently running kernel. The command must be run again after each startup or after the
network has been configured.
For HP/UX 11 or Solaris 2.8 and Later
As root user, execute the following command:
ndd -set /dev/tcp tcp_time_wait_interval 60000
where 60000 is for 60 secs, the minimum recommended value. You must put this command in one of the rc2.d scripts to get it
to set automatically at boot time.
For HP/UX 11, you can place the ndd settings inside the /etc/rc.config.d/nddconf file without the need of the startup scripts.
For Solaris Prior to 2.8
Use the parameter name tcp_close_wait_interval instead of tcp_time_wait_interval.
AIX THREAD MODEL
IBM has recommended the following environment variables setup to improve the Threading model with PeopleSoft Internet
Architecture.
Set up the following environment variables for the PeopleSoft Application Server user, database user, and web server user:
For Korn Shell user, place the following lines in the .profile:
export AIXTHREAD_SCOPE=S export AIXTHREAD_MNRATIO=1:1 export AIXTHREAD_COND_DEBUG=OFF export AIXTHREAD_GUARDPAGES=4 export AIXTHREAD_MUTEX_DEBUG=OFF export AIXTHREAD_RWLOCK_DEBUG=OFF
For C Shell user, place the following lines in the .cshrc file:
set AIXTHREAD_SCOPE = S set AIXTHREAD_MNRATIO = 1:1 set AIXTHREAD_COND_DEBUG = OFF set AIXTHREAD_GUARDPAGES = 4 set AIXTHREAD_MUTEX_DEBUG = OFF set AIXTHREAD_RWLOCK_DEBUG = OFF
TIMEOUT SETTINGS
There are in general three types of timeouts:
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2004. All rights reserved. 33
1. Timeout during a PeopleSoft Internet Architecture transaction (intratransactional): When the timeout expires, the
transaction fails and must be resubmitted.
2. Timeout between PeopleSoft Internet Architecture transaction (intertransactional): When the timeout expires, the user has
been idling for too long, and the resources associated with the user are freed. You must relogin to re-establish the state.
3. Timeout that "reserves" a resource until the expiration time before putting it back into the pool for recycling. (for example,
tcp_timewait).
Note that for the intratransactional timeouts, their values should be “staged.” In other words, the end-to-end timeout value
should always be greater than that of its intermediate legs. With this in mind, let’s review our timeout values, from bottom up:
• Appserver: Service Timeout = x sec (default 300) (in psappsrv.cfg)
Type=intratransaction, which includes the time it takes at the DB server. According to the PIA Answer Book:
Service Timeout
Specifies the number of seconds a PSAPPSRV waits for a service request, such as MgrGetObj or PprLoad to
complete, before timing out. Service Timeouts are recorded in the TUXLOG and APPSRV.LOG. In the event of a
timeout, PSSAPSRV terminates itself and Tuxedo automatically restarts this process.
In other words, it has to be large enough to accommodate the longest acceptable requests and queries. It is
recommended to set x=1200 (20 minutes).
• PeopleSoft Internet Architecture: tuxedo_send_timeout = w sec (default 50) ; tuexdo_receive_timeout = x sec (default
600) (in pstools.properties)
The receive timeout is also intratransactional, and it has to be bigger than appserver service timeout.
The receive timeout indicates the maximum number of seconds that the servlet waits for a response from the
application server. If you increase your application server service timeouts, such as the Service Timeout setting for
PSAPPSRV, then increase the tuxedo_receive_timeout parameter to be greater than the Service Timeout values that
appear in the PSAPPSRV.CFG configuration file on the application server.
• Servlet: sessionTimeout = x sec (default 1200) (in configuration.properties)
This is intertransactional, as one has to relogin when the servlet expires (technically this is a security setting).
The meta refresh tag is in seconds and should be less than or equal to the session.timeout for the servlet. For
WebLogic 6.1, the meta refresh tag should be less than or equal to <session-timeout> as discussed in the following
section.
• JOLT: Client Cleanup Timeout = x min (default 60) (in psappsrv.cfg)
This is intertransactional. See description (default is 60, but in most cases this can be reduced to 10 to conserve
resources):
Client Cleanup Timeout: Specifies the amount of time, in minutes, that a client connection can remain idle (no work
requested) before Tuxedo terminates a client connection. Client disconnects are transparent to a client. To reconnect,
users must only click the mouse.
• Webserver session timeout:
<session-config><session-timeout>x</session-timeout></session-config>
(in <webserver home dir>/<peoplesoft web domain>/PORTAL/WEB-INF/web.xml)
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2001. All rights reserved. 34
This is intertransactional and specifies the number of minutes (WebLogic) to wait before invalidating an unused
session.
Note that setting this value too high ties up web server resources, especially when users close their browsers instead of
logging out. Setting it to be the same as (or a bit higher than) the JOLT cleanup timeout is generally a good idea.
• HTTP timeout:
Apache: Timeout = x sec (in httpd.conf)
HTTP timeout, unfortunately, serves as both intertransactional and intratransactional in different scenarios, so it may
or may not be higher than the rest of the timeouts. This directive defines the amount of time Apache will wait on three
occasions:
1. The total amount of time it takes to receive an HTTP GET request.
2. The amount of time between receipt of TCP packets on a POST or PUT request.
3. The amount of time between acknowledgements on transmissions of TCP packets in responses.
A common problem:
Sometimes in PeopleSoft Internet Architecture, time out error occurs on PeopleSoft pages even when people are using the page.
Solution:
1. Increase the timeout values in servlet session timeout and webserver session timeout.
In configuration.properties:
sessionTimeout = 3600 sec
In web.xml:
<session-config> <session-timeout>60</session-timeout> </session-config>
2. Increase values in configuration.properties in Apache Group->Apache\htdocs\PeopleSoft.
Set "meta-tag" session timeout to 3600 (which enables users to use the page for 60 minutes with no time out errors).
3. Increase the values in pstools.properties if long queries are common:
Set tuxedo_receive_timeout to 1500.
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2004. All rights reserved. 35
Chapter 6 - Integration Broker
CONFIGURE PSBRKHND MESSAGE BROKER HANDLER
The primary purpose of this handler is to determine the appropriate routings based on the Tuxedo request received and update
the appropriate database tables (queues) accordingly. This handler also executes the OnRoute PeopleCode events
(OnRouteSend or OnRouteReceive) and Inbound Transformations.
Note that the processing time to determine the routings is much faster then actually processing a PeopleCode event. The number
of OnRoute and Transform events is typically low compared to the overall number of different messages. If physical resources
are a problem, you can reduce the number of this handler without impacting performance.
OPTIMIZE MESSAGE QUEUE VERSUS MESSAGE CONSUMPTION
There is a difference between the messaging system being able to receive a given number of messages per slice of time and
being able to process the message data (that is, a notification process) per slice of time. For example, if a non-PeopleSoft
system needs to send messages at a rate of x number per minute, the PeopleSoft messaging system can receive and queue them
at this rate. But if the notification process involves a lot of business logic or actions that take up a lot of server resources, the
application may not be able to consume the messages at the same rate that the messages are queued by the messaging system
(given a particular hardware configuration).
You should determine what the real requirement is for slice of time throughput. Is the requirement the ability to have the
messages queued at x number per minute (with the data from x messages being processed in more than that minute), or does the
message data from x messages absolutely have to be run through the business logic within that minute slice of time? If the
messages must be queued (that is, must you receive them as fast as other systems are sending them), then you should explore
additional configuration options for optimization. You might even look at deferring message consumption (running the business
logic) until certain times of the day or night when additional system resources may be available. If the data from x messages
absolutely has to be run through the business logic in that one minute slice of time, then you may have to look at what is
happening in the notification event and optimize that.
USE OF MESSAGE SEGMENTS FOR ORACLE DELIVERED FULL SYNC SERVICE
OPERATIONS
Messages (service operations) should be designed to take full advantage of as much queue partitioning as possible. One area of
concern is the Oracle-delivered full sync service operations. These particular service operations do not take advantage of
partitioning due to the way that they currently have to chunk the content data and process the notifications. Integration Broker
has come up with an alternative to this current chunking mechanism using message segments.
Message segments provide a way to process and send large amounts of data (Gbytes) without impacting performance due to
PeopleCode processing, or running out of memory. Message segments enable a single message to load with all the data
segmented by any chunkable size desired. After one segment is populated based on a configuration parm, or overridden by
PeopleCode, that segment is serialized to XML and inserted into the IB database queue compressed. The next segment is then
available for processing. This type of loading continues until the message is completely loaded with all the desired data. The
message can be sent either as one message (ordered segments) or multiple messages (unordered segments). The actual data is
sent chunked by segments to the gateway and received by the target system.
These segments should be complete stand-alone data structures. The message object is responsible for this memory
management. The consumption of a segmented message in PeopleCode is straightforward. One segment at a time is
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2001. All rights reserved. 36
decompressed and serialized into a rowset. After the data is inserted into the database, the rowset is destroyed, freeing up
memory, and the next segment is then loaded. This process repeats for the number of segments in the message.
Refer to IB PeopleBooks for Message PeopleCode APIs with respect to message segments.
OPTIMIZE ONE MESSAGE VERSUS MULTIPLE MESSAGES PER QUEUE
Another design-time consideration when creating queues is whether to have one message per queue or many messages in one
queue. The answer to this question depends on many factors. For example, if there are 20 unrelated messages in a queue, the
dispatcher will try to process the 20 messages in the queue assuming these messages are partitioned. If you create a queue for
each message, there would be 20 queues. The dispatcher would have to traverse all 20 queues to process those 20 messages,
which would compromise performance due to more dispatch cycles and database reads and writes.
Therefore, ideally you should put related messages in one queue and partition accordingly. For high volume transaction
messages, create a queue for each message, as these queues can then be part of a dedicated messaging server.
TUNING PSADMIN PARAMETERS FOR ASYNCHRONOUS MESSAGING
Many configurable parameters in PSADMIN have significant impact on performance of asynchronous-based messaging. This
section discusses each of these parameters in detail and its impact on performance.
Tuxedo Queue Size: The actual Tuxedo message queue size. For NT, the Tuxedo queue size is a registry parameter. For Unix
systems, it is a kernel parameter. This value is used for Tuxedo queue threshold determination by the pub/sub dispatchers. This
value should be 1 or 2 MB instead of using the default of 64 KB. Note that for AIX, the Tuxedo queue size is dynamic;
therefore, you should use an arbitrary value. Otherwise, the benefits of throttling are not realized.
As Tuxedo requests get queued, there is a point where the queue can get full and any additional requests get disregarded. From
8.43, the dispatcher reads the number of queued requests and determines, based on this parameter, if any or all requests should
be sent out for this cycle. Therefore it’s important that this value accurately reflects the actual size.
DISPATCHER Parameters
Recycle Count: The dispatcher automatically recycles itself when this value is reached. By default, the recycle count is set to 0.
This count is based on the number of Tuxedo requests. In general, you should not have to cycle the dispatcher. However, if a
recycle count is used, it will affect performance because initialization will be performed which includes rebuilding all the in-
memory queues for each active queue assigned to that dispatcher.
Dispatch List Multiplier: This is a parameter used to throttle the number of requests sent to its associated handlers. The actual
list is the number of associated handlers multiplied by this value. The current default is set to 10. This value was obtained by
many performance tests. You should not have to change this value because it scales well.
Scan Interval: This is the interval that the dispatcher runs its on-idle processing. The current value is set to 15, which is fine if
Pub/Sub is running in the same domain as the PeopleSoft Internet Architecture appservers. However, if the Pub/Sub servers are
stand-alone, this value should be set to 1, as this is the only mechanism to initially poll the database queue for work.
Dispatcher Queue Max Queue Size: This value is the maximum number of items (messages) per queue that the dispatcher
retains in memory. The current default is set to 1000, which was obtained after many performance tests. You should not have to
change this value because it scales well.
Memory Queue Refresh Rate: This is the number of actual dispatches that the dispatcher will automatically rebuild in its in-
memory queue for a particular queue. The queues should not get corrupted; however, the current default value of 1000 is set at
such a high level that it does not impact performance and is recommended based on performance tests. You should not have to
change this value because it scales well.
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2004. All rights reserved. 37
Restart Period: This is the time that the dispatcher attempts to redispatch messages that are still in the START status. This
value can potentially have a big impact on overall performance of the messaging system. When the dispatcher dispatches a
request, the system sets the status of the message to START. The Tuxedo request is queued, and the next available handler will
attempt to process this request and set the status to WORK. However, when the message system is under configured (that is,
there are not enough handlers to process all the requests), the request stays queued. The dispatcher again sends the request after
the restart period has elapsed. This potentially leads to a lot of redundant requests that the available handlers must cycle
through. This leads to the Tuxedo queue overflowing and potentially losing requests, request that must be picked up when the
restart period is reached. However, you do not want to set this value too high, as messages would not be restarted in case of a
handler crash. A good guideline is to use the number of incoming requests per second divided by the number of associated
handlers, multiplied by the average processing time per second. Use this formula:
((Incoming requests per second)/ (# of associated handlers)) * (average processing time per request)
PSPUBDSP only
Ping Rate: This parameter—along with the scan interval—determines how often a node that is in the PSNODESDOWN table
should be pinged to see if it is in a valid state to send a request to. Part of the on-idle processing performs these ping requests.
When there are a lot of nodes that are down due to improper configuration of routings on Service Operations, many CPU cycles
are spent performing these pings. This value allows for a longer time between subsequent pings. Here is the algorithm used to
determine the interval:
Attempts * Ping Rate * Scan Interval)
Maximum Ping Interval: This value is the maximum time between subsequent pings for a node that is in the
PSNODESDOWN table. This value is in hours.
HANDLER Parameters
Min Instances and Max Instances: These values should always be the same. If the Min Instance is not the same as the Max
Instance, then under load, the system has to wait for the process (the handler) to boot up and initialize before it can be used. It is
better to boot all at one time, avoiding allocations during max load.
Recycle Count: Because the handlers run IB Events that contain PeopleCode, memory leaks are likely. Therefore, you should
have a high recycle count and monitor it to determine if it grows to an undesirable size. The recycle count by default is 20000;
however, depending on the PeopleCode being run, you can set this value higher or lower. The problem with a recycle count on
a handler is that with proper load balancing from Tuxedo, all associated handlers recycle at approximately the same time. If this
becomes a problem, set the recycle count to 0 and create an automated script that will stagger the recycling of the handlers by
using Tuxedo command line arguments to specify the specific handler.
Max Retries: This value represents the number of times that the handler will attempt to process a message before the status is
set to TIMEOUT. Therefore, if the PeopleCode being run causes a crash of the process, it will attempt to process it again. This
value should be set to a low value—5 or lower—to limit the amount of handler crashes for one specific bad message.
PSPUBHND only
Thread Pool Size: This value represents the number of concurrent threads that the handler can spawn for HTTP requests. Note
that with performance benchmark testing in this area, with a thread count set to 5, one handler was able to replace three non-
threaded handlers. This is something to consider if memory resources are scarce.
TUNING PSADMIN PARAMETERS FOR SYNCHRONOUS MESSAGING
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2001. All rights reserved. 38
These are the configurable PSADMIN parameters for synchronous messaging that can affect performance. This section
discusses each of these parameters in detail and its impact on performance.
Min Message Size For Compression: Size of message content data that will cause the Integration Broker to compress the data
prior to posting to the Integration Gateway. In general, Sync messages should be as small as possible to improve response time.
Third-parties should always use compression if possible.
Thread Pool Size: This value represents the number of concurrent threads that one PSAPPSRV process can spawn for HTTP
requests. The default is set to 5 based on performance benchmarks.
CONFIGURE DEDICATED MESSAGE SERVERS FOR HIGH VOLUME
ASYNCHRONOUS MESSAGING
It is best to run pub/sub (asynchronous) messaging activity on dedicated servers when processing a high message volume. These
domains should have application server processes (PSAPPSRV) configured in addition to pub/sub servers. The advantage of
having the application server processes on the pub/sub machine is that if the server has only pub and sub services defined, it
must poll the database queue to determine if there is work to be done. With the (additional) application servers configured on
the same machine as the pub and sub services, you get event-driven notification of work to be done without the latency of
polling. The gateway should “point” to this application server domain for message processing. PeopleSoft Internet Architecture
should not be accessed on the dedicated machine. To access PeopleSoft Internet Architecture for configuring messaging, use
the PeopleSoft Internet Architecture install on the other online application servers.
Dedicated messaging servers are assigned a certain number of queue names that result in its queue list. This list must be unique
across messaging servers pointing at the same database. The default messaging server defined by _dflt at the end of each
dispatcher process creates its own queue list based on all queues in the database, less the queues defined for the same type
dedicated server process. Therefore, to configure multiple dedicated servers on different domains (to spread across different
machines), ensure that the queue lists are indeed unique for the different dispatcher types; otherwise, there will be database
contention and the overall performance will be significantly impacted.
In addition, add only the server type needed for the queue. This means that if you have long running notifications, create only a
subscription contract server. Moreover, remove all queues no longer in use, as these will consume additional resources.
For information on how to configure dedicated servers, reference the Integration Broker PeopleBooks.
CONFIGURE DEDICATED MULTIPLE DOMAINS FOR HIGH-VOLUME
ASYNCHRONOUS MESSAGING
Pub/sub domains for high-volume messaging should usually run on a box other than that used for online users. Doing so helps
prevent messaging traffic from being affected by the number of online users, and vice versa. Separate pub/sub domains work
only for Asynch messaging. Synch messaging runs as a service in the online app server. When running pub/dub on a dedicated
box, adjust the Scan Interval for each dispatcher in PSADMIN to 1, as this will be the fastest initial poll rate from the database
queue.
Within a dedicated pub/dub machine, you can configure one or more domains. There are few scenarios in which having
multiple domains on one box will result in performance advantages. The reason is that each domain has a publish dispatcher
and a subscription dispatcher. The roll of the subscription dispatcher is to take messages from the database queue and create
Tuxedo calls to get them processed. The dispatcher is where the partitioning logic is applied. The dispatcher looks at the queue,
figures out how many messages can be processed next (based on partitioning), and then puts them in the Tuxedo in-memory
queue to be processed. The dispatcher locks the rows in the DB message queue until the Tuxedo calls come back with either
success or failure. The dispatcher doesn’t wait for the return of the first set of calls before moving on. It will continue to read
the DB queue and make the Tuxedo calls even before the first set of calls have come back. The second dispatcher may not be
able to read from the DB queue because the first dispatcher locks certain rows while processing. The second dispatcher can also
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2004. All rights reserved. 39
add complications in debugging. Adding another domain takes up systems resources. If you are going to consume resources,
then add handlers rather than a new domain. If you are trying to configure for failover, configure using IB failover.
APPLICATION GUIDELINES FOR ASYNCH MESSAGING
You should partition messages as much as possible. Third-party clients should post to PeopleSoft in parallel. To reduce delays
due to posting/queuing, use large messages (multi-transaction) for full sync processes, and use compression.
When publishing from PeopleCode, use the enqueue option as much as possible, or publish the message as late in the
transaction as possible. If you publish a message early in a transaction, and the transaction takes a long time to complete, a lock
will be maintained on the queue sequence ID table, blocking other messages in the same queue.
Notification PeopleCode should be as light as possible. For multitransaction messages, commits should be frequent to minimize
contention. CIs should not be used for full sync processes. They may be used in incremental sync processes where volumes are
not expected to be high. Note that CI performance is dependent on the underlying component. If the component is light, it is
possible to have a fast CI. The heavier the base component, the slower the CI.
GetMessage is a relatively heavy call. You should use and reference the message that’s passed into the method whenever
possible in PeopleCode. Transform code (either PeopleCode or XSLT) should be as light as possible. In general, XSLT
transforms will be much faster than PeopleCode transforms.
Message compression is automatic for PeopleSoft-to-PeopleSoft transactions. For third-party applications, set the HTTP target
connector property “sendUncompressed” to N. Compression can reduce response time by 20 to 80 percent based on message
size. By adding a simple relay servlet, third-party messaging can take advantage of compression.
Areas to review when using the Full Sync EIPs:
1. Database Tuning: Create database statistics in a test environment from test runs and export them before production runs.
Full Sync EIPs are used for initial database creation. Empty databases do not have database statistics. If EIPs are using
temp tables, make sure the indexes are available for reads. After temp table population, create the database statistics for
these tables.
2. Archiving: Enable the archive option on the Queue page for queues designated for EIPs. This will cause the message data
to be archived into other IB PeopleTool tables. The Full Sync EIPs are one-time in nature and hence do not need to be
archived.
3. Database Layout: Plan database layout by splitting PeopleTool tables from application tables for better throughput.
4. Additional Tips:
• Enable archiving for Full Sync EIPs or any process where archiving is not required.
• Deactivate all message queues that are not being used.
• After Full Sync is run, the DBA should update the database statistics for the new (grossly changed) table sizes.
• Keep commits at the transaction level and not at the message level. This will reduce locking and improve performance.
Application Guidelines for Sync Messaging
Response time tends to be important in synchronous requests, so transforms and OnRequest PeopleCode should to be light. Use
CIs only if the base components are light and have quick response times.
Keep the number of sync requests from a client to a minimum or use synchronous threading. For example, if you have a certain
amount of work to be done on a remote system, pack as much of the work into as few of calls as possible. Minimizing calls
reduces the amount of PeopleCode message overhead to instantiate request/response messages.
In general, sync messages should be small to improve response time. Third-party clients should use compression, if possible
(we do this by default between PSFT applications). Partitioning is not an issue with sync messaging. Sync messaging should
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2001. All rights reserved. 40
typically be used for remote queries, not for remote inserts/updates/deletes. If synch messaging is used for
inserts/updates/deletes, SyncRequests do not share a transaction context with the requesting system. If a SyncRequest has been
completed, and the client transaction rolls back, the SyncRequest will not be rolled back. (Publishes will be rolled back).
Also, a component should not depend on the successful completion of a SyncRequest. If the remote system is down, the
SyncRequest will fail. The requesting application should be prepared to deal with this by using exception logic, or should use
the Asynch system. If the remote system is down, the Asynch system will retry. If you need to send data to multiple systems at
the same time, use threaded sync requests or possibly Asynch messaging. The Asynch system is much more efficient at fanning
out information to multiple target systems.
CONFIGURE LOAD BALANCE INTERVAL (PEOPLETOOLS 8.48 AND LATER)
During on-idle processing, the Integration Broker dispatcher will ping nodes that are down (Publication Dispatcher only) and
also synchronize its in-memory queue with the database queue table. If the dispatcher is constantly busy, the on-idle processing
may not get run for extended periods of time, resulting in failed messages not getting retried or new messages not getting
processed.
In PeopleTools 8.48 and later, a new configuration parameter in psappsrv.cfg is called Load Balance Interval. Setting this
parameter (measured in minutes) forces the dispatcher to perform on-idle processing at fixed intervals, which could help avoid
queues not getting processed due to the previously mentioned reasons.
MASTER/SLAVE
When setting up a master/slave configuration using machines with different CPU processing power, use the more powerful
machine as the master. If you use the slower machine as master, that machine may not keep up with the slave. As a result, the
slaves would sit idle and throughput would not be maximized.
REDUCING MAXIMUM APP MESSAGE SIZE
Some operations may benefit from smaller message size. For example, when running FULLSYNC message from a HCM
instance to setup Enterprise Portal Resource Finder, reducing the maximum app message size from default of 10MB to 25K
enables the process to run significantly faster. To reduce the maximum app message size, go to PeopleTools->Utilities-
>Administration Options-> PeopleTools Options and change the Maximum App Message Size field. We suggest manually
setting the value back to the default after the FULLSYNC messages are complete because this setting affects all message types.
MULTITHREADED INTEGRATION BROKER (PEOPLETOOLS 8.46 AND LATER)
Synchronous Messaging: PeopleTools 8.46 provides a multithreaded version of IntBroker.SyncRequest() and enables users to
configure the number of message handling threads. In general, setting the thread count equal to the number of psappsrv.exe
processes in the target domain for the messages can improve message handling response times by as much as 80 percent over a
single threaded implementation.
Note: Make sure that you apply PeopleTools 8.46.12 or later and PeopleTools 8.47.06 or later if you are not on
PeopleTools 8.48. These patches fix an important thread leak issue associated with using this feature.
Asynchronous Messaging: As with synchronous messaging, we recommend setting the number of threads for PSPUBHND
equal to the number of psappsrv processes in the target domain. Note: If needed, you can distribute PSPUBHND via a
Master/Slave configuration if the number of threads is limited by the source domain hardware.
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2004. All rights reserved. 41
SCAN TIME SETTING FOR APP MESSAGING
An Oracle database user who has database logging turned on may see a large volume of archive log created.
The contents of the Oracle Archive log contained the following:
SET TRANSACTION READ WRITE; INTERNAL; COMMIT;
The Archive Log (or Redo log) is a side effect created by the Application Messaging Dispatchers’ select statement, which is
invoked periodically based on the value of the Scan Interval.
Application Messaging has been enhanced to minimize the side effect on Oracle logging.
PUBSUB ERROR AND APP SERVER LOG FILE GROWING
Problem: These PSSUBDSP_dflt errors were occurring upon starting the App server. There are hundreds of entries like this.
While these errors occurred, no access to the PS system was possible in three-tier mode. Two-tier mode invoked no errors.
PSSUBDSP_dflt.1784 [10/24/00 13:46:22](1) (NET.333): The service PSSUBHND_dflt could not be sent because of a blocking condition within Tuxedo on the client. PSSUBDSP_dflt.1784 [10/24/00 13:46:22](1) (NET.333): The service PSSUBHND_dflt could not be sent because of a blocking condition within Tuxedo on the client. PSSUBDSP_dflt.1784 [10/24/00 13:46:22](1) (NET.333): The service PSSUBHND_dflt could not be sent because of a blocking condition within Tuxedo on the client.
Second Error:
>PSSUBHND_dflt.2253 [10/24/00 13:46:25 SubConProcess](1) (NET.346): Failed to execute SubConProcess request PSSUBHND_dflt.2253 [10/24/00 13:46:25](2) Service SubConProcess failed
Resolution:
This problem was appearing when the nightly backup inadvertently shut down the database while the appserver was running.
When we tested shutting down everything in the correct order, the problem disappeared. The PSSUBHND instances were too
busy erring out to handle even one subscription.
As long as you follow the correct shut down procedures, you can avoid this problem. If, however, this problem does occur, shut
down the web server, application server, and process scheduler (not the DB) and restart them in the correct order.
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2001. All rights reserved. 42
Chapter 7 - Operating System Settings
For a large environment with many domains, use the following kernel parameters. Kernel parameters of this size will provide a
good deal of resources and are not uncommon in our customer environments.
FOR LINUX
The default settings and available tuning options vary from one Linux kernel version to the next, so information presented in
this section may be incomplete. The correct settings also vary depending on factors such as available physical memory, number
of processors, and PeopleTools component configuration.
<h4
These settings can be found in the /etc/sysctl.conf file, which is loaded when the system boots.
# raise max open fd limits fs.file-max = 65536 # use wider range for local ports, # setup all Tools components to use port numbers between 1024 and 10000 net.ipv4.ip_local_port_range = 10000 65000 # allow more/larger IPC message queues kernel.msgmni = 512 kernel.msgmax = 1048576 kernel.msgmnb = 1048576 # set IPC shared memory blocks, # these are system defaults, # except for shmall which is varies depending on physical memory kernel.shmmni = 4096 kernel.shmmax = 33554432 kernel.shmall = 1073741824 # adjust IPC semaphore settings kernel.sem = 250 256000 64 1024
After you change the sysctl.conf file, you can load the updated values from that file into your running system with sysctl -p.
TCP_WAIT
Unlike other systems, TCP_WAIT is not an adjustable parameter. For reliable TCP behavior, do not lower TCP_WAIT below
60 seconds on any system. In the Linux kernel, the parameter is hard coded at 60 seconds and requires a recompile to change.
To prevent DOS attacks, the number of sockets that can be in a TCP_WAIT state is limited. The sysctl name is
net.ipv4.tcp_max_tw_buckets and the default value is 180000. If you use this default, you must establish, process, and close
more than 3000 sockets per second to see a problem.
FOR SOLARIS
MSGMAP=2048
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2004. All rights reserved. 43
MSGMAX=65536 MSGMNB=65536 MSGMNI=1024 MSGSEG=32767 MSGTQL=1024 SEMMAP=512 SEMMNI=512 SEMMNU=4096 SEMUME=10 SEMMNS=4096 SEMMSL=8
FOR HP-UX
dbc_max_pct=10 dbc_min_pct=8 default_disk_ir=1 fs_async=1 max_thread_proc=2048 maxfiles=2048 maxfiles_lim=4096 maxssiz=200802304 (191.5 MB) maxswapchunks=2048 maxuprc=512 maxusers=2000 msgmap=2048 msgmax=65535 msgmnb=65535 msgmni=1024 msgseg=32767 msgtql=2046 semmap=512 semmni=512 semmns=4096 semmnu=4096
FOR TRU64
ipc:
msg_max = 262144 msg_mnb = 262144 msg_mni = 16384 msg_map = 20000 msg_tql = 4096 shm_max = 4294967295 shm_min = 1 shm_mni = 300 shm_seg = 100 sem_mni = 4096 sem_mnu = 1048 sem_mns = 819200 sem_msl = 1000 sem_opm = 400 sem_ume = 1048 sem_vmx = 32767 sem_aem = 16384
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2001. All rights reserved. 44
ssm_threshold=8388608 num_of_sems = 1024 max_kernel_ports = 22487
inet:
tcpnodelack = 0 tcbhashnum = 16 tcbhashsize = 8192 ipqmaxlen = 1024 ipqmaxlen = 2048 ipqs = 1 ipqs = 32 tcp_mssdflt = 1460 tcp_msl = 60 pmtu_enabled = 0 tcp_sendspace = 61440 tcp_recvspace = 61440 udp_ttl=60
vfs:
bufcache = 1 fifo_do_adaptive = 0
socket:
somaxconn = 65535 sominconn = 65535
proc:
per_proc_data_size = 3221225472 (3072MB, or three-quarters of the value of per-proc-address-space) per_proc_address_size = 4294967296 (4096MB)
This is needed if you must compile large numbers of Cobol programs. Many applications, for example Oracle and the Tru64
Java Fast VM, require that you properly set per_proc_data_size. However, the per_proc_data_size should be less than the
physical memory available on the system; otherwise, swapping will occur.
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2004. All rights reserved. 45
Chapter 8 - Call Telephony Interface (CTI)
RENSERVER PARAMETERS (PSRENCONFIG.TXT)
reaper_interval
How often (in sec) to look for and delete expired events.
Default is 3600 (1 hour), which caused a steady increase in RENSERVER memory.
ns_param reaper_interval 600 (Recommended)
default_kn_expires
Default to use if an event is received without a kn_expires header.
Use "infinity" or something like "+3600" for 1 hour; must be at least "+5."
Default is 3600 (1 hour), which caused a steady increase in RENSERVER memory.
ns_param default_kn_expires "+10" (Recommended)
permission_max_idle
How long (in sec) the permission can stay in cache if the tunnel is closed.
Default is 60, which increases the time the PSTOKEN of the agent is expired at the
RENSERVER. ns_param permission_max_idle 300 (Recommended)
mtu_size
New parameter to pad the network TCP packets with additional data to reduce latency
in TCP ACK packets. ns_param mtu_size 1500 (Recommended)
PSMCAPI PARAMETERS (RENCLIENT.PROPERTIES)
interval_topic_reaper
Topic reaper interval in milliseconds.
Default is 30000 (30 seconds), which keeps the session alive for an extended period of
time. interval_topic_reaper = 3000000 (Recommended)
heartbeats_to_miss
New parameter specifies the number of heartbeats to miss before the session is set for
deletion.
Default is 2.
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2001. All rights reserved. 46
heartbeats_to_miss = 10 (Recommended)
mtu_size
New parameter to pad the network TCP packets with additional data to reduce latency
in TCP ACK packets. mtu_size=1300 (Recommended)
PSMCAPI JAVA OPTIONS (STARTSERVER.BAT)
Java Heap Size Options
Default is –Xms256m –Xmx512m. Increase to below recommended value to handle
higher call rate (more than 10 cps). -Xms512m -Xmx768m (Recommended)
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2004. All rights reserved. 47
Chapter 9 - PSAE and PSAESRV
The benefits of PSAESRV versus PSAE are a popular topic of discussion. Our studies have shown that PSAE is as good as
PSAESRV for most practical purposes.
If you have an application engine job that runs longer than 10 seconds, PSAE is equivalent to PSAESRV. PSAE has the added
advantage of being recycled at the end of each application engine job, cleaning up any outstanding SQL cursors to the database
that may have been left behind. Because PSAE recycles after each use, PSAE does not have any possible memory leakage
problem that may occupy the precious system memory. In short, PSAE is a cleaner workhorse.
To shutdown PSAESRV, when you configure the Process Scheduler, you can change the default of the PSAESRV instance to 0.
Values for config section - PSAESRV Max Instances =0 Recycle Count=1000 Allowed Consec Service Failures=2
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2001. All rights reserved. 48
Chapter 10 - Reporting Tools
XMLPUBLISHER (PEOPLETOOLS 8.48 AND LATER)
Consider the following tips when using XMLPublisher:
• Increase JVM heap size to 512MB. See the "Set Application Server JVM Options" section on how to do this.
• Use PDF for reports where the PDF template will suffice. For more complex reports that require the RTF template,
take greater care when designing the RTF template and data source.
• Use SQR or other mechanisms to generate the XML File as a preprocessing step. Reason: the XML File is the most
optimal data source for an XMLP report. While PSQuery and rowset data are supported data sources, they will, in
effect, be converted to XML File during the report processing. Using SQR or other mechanisms is one optimization
technique.
BUSINESS OBJECTS ENTERPRISE (PEOPLETOOLS 8.48 AND LATER)
For customers who have a large reporting load and have converted the report format to Business Object Enterprise 11 (BOE),
to avoid the reporting load affecting other online users, we recommend that you configure a dedicated application server
domain and install the BOE server on a separate machine.
BOE will request data via the integration gateway and Query Access Services (QAS). QAS will make requests to
PSANALYTICSRV to retrieve the actual data. You should set the Max Instance Count of PSANALYTICSRV to a value equal
to or greater than the maximum number of concurrent reports that you must run. By default, PSANALYTICSRV recycles after
each request. If you are running many small reports that take less than 1 minute to finish, it may be beneficial to set recycle
count to a greater value to minimize the cost of restarting PSANALYTICSRV. However, if you are running large reports, the
memory footprint of the PSANALYTICSRV may be high, and it is better to set the recycle count to 0. In addition, if there is a
burst of report requests, the PSANALYTICSRV processes spawned to handle the request will continue to consume memory if
you set recycle count to greater than 0 (eventually the idle processes will shut down).
Depending on the size of the document, when generating BOE reports, lots of physical files are created in various layers: BOE
temporary files, QAS repository files, and Report Repository files. For better performance, configure these locations such that
the physical files are created on fast disks that are optimized for faster read and write.
While submitting BOE reports through your Peoplesoft application, set the Minutes Before an Idle Connection is closed setting
to a lesser value (1 minute) to free up resources from inactive users more quickly. You can change this setting from the BOE
Management Console.
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2004. All rights reserved. 49
Chapter 11 - Monitoring Tools
PeopleSoft Ping
PeopleSoft Ping is a convenient monitoring facility using PeopleSoft Internet Architecture, and it shows the time spent in
different tiers of the PeopleSoft system. Select PeopleTools->Utilities->PeopleSoft Ping. See PeopleBooks for more details.
psadmin
You can use psadmin to monitor Tuxedo queueing. You can use this information to determine the optimal number of
PSAPPSRV processes. See the Application Server Guidelines section for more details.
PeopleSoft Performance Monitor
You can capture detailed performance information for individual requests using PeopleSoft Performance Monitor (PPM). PPM
provides a breakdown of the response time for the request and enables you to see time consumed by individual SQL statements
or PeopleCode executions. For more information on PPM, see the Red Paper entitled "PeopleSoft Performance Monitor" on
Customer Connection.
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2001. All rights reserved. 50
Appendix A – Validation and Feedback
This section documents that real-world validation that this Red Paper has received.
CUSTOMER VALIDATION
PeopleSoft is working with PeopleSoft customers to get feedback and validation on this document. Lessons learned from these
customer experiences will be posted here.
FIELD VALIDATION
PeopleSoft Consulting has provided feedback and validation on this document. Additional lessons learned from field
experience will be posted here.
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2004. All rights reserved. 51
Appendix B – Revision History
Authors
• Samuel To
• Michael Turner
• Michael Simons
• Ravi Selvaraj
• Indraneel Ganguli
• Dhinakaran Veeraraghavan
Reviewers
On Octocber 2007, the following people reviewed this Red Paper:
• Marc Varennes
• Ravi Shankar
• Colleen Murray
• Willie Suh
• Sunil Kulkarni
• Syamala Aramandla
Revision History
Date Description
11/19/07 Copy edited and inserted numerous queries.
07/01/2002 Created document for PeopleTools 8.4 (inherited from 8.1 Performance RedPaper, version
8)
12/20/2002 Revised.
• Web Server Guidelines – Updated service pack information for WebLogicUpdated
BEA link, added workaround for Linux. Added section on load balancing
• Additional Guidelines - Added comment on compression and high-speed
link.Rearranged and expanded section on Navigation Pages Caching. Added
explanation on session timeout.
• Kernel Configurations – Modified file descriptor limit for HP-UXAdded proc
parameters for Tru64
Online Performance Configuration Guidelines for PeopleTools 8.45, 8.46, 8.47, 8.48, and 8.49 6/26/2008
© Copyright PeopleSoft Corporation 2001. All rights reserved. 52
Date Description
01/02/2004 Revised:
• Application Server Guidelines – Increased Recycle Count value.Added
explanation on PSAPPSRV instance
• Web Server Guidelines – Updated Execute Thread Count discussion. Added Jolt
Request timing monitoring toolAdded WebSphere Resource Analyzer information
• Additional Guidelines – Updated discussion about Compression
11/04/2005 • Web Server Guidelines – Updated with information about Oracle Application
Server
• Call Telephony Interface – Added new chapter
• PSAE and PSAESRV – Added new chapter
02/06/2006 Changed formatting
05/23/2006 Added missing step (set auditPwd) to the instructions to enable JOLT request timing trace
10/23/2006 Updated document with 8.48 information:
• Added information about preload cache, dynamic recycling and application server
JVM options
• Added information on jolt session pooling, weighted load-balancing and dumping
heap on OutOfMemoryError
• Added Integration Broker section
• Added Reporting Tools section
• Renamed Kernel Settings section to Operating System Settings section, and added
Linux to the section
06/06/2007 Updated document with 8.49 information:
• Added information about Weblogic9.2 & Websphere 6.1.0.3 logging level settings
to improve performance
• Added information about to ensure JIT is enabled and class verification skipped
• Added information about tuning Asynch and Sync messaging on Integration
Broker section
• Modified contents in PSAPPSRV instances, App server Dynamic recycle, Pre-load
Cache, Parallel boot sections
• Added information about supported browsers in browser section