You are on page 1of 38

PeopleSoft Red Paper Series

Online Performance Configuration Guidelines for PeopleTools 8.4x Revision 3


By: Chris Che January 2004

Including: Application Server Guidelines Web Server Guidelines Web Browser Configurations Additional Configurations Kernel Configurations

Online Performance Configuration Guidelines for PeopleTools 8.4x


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 redpaper@peoplesoft.com. 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........................................................................................................................................................... 4 CHAPTER 1 INTRODUCTION ........................................................................................................................................... 6 Structure of this Red Paper Related Materials 6 6

CHAPTER 2 APPLICATION SERVER GUIDELINES .................................................................................................... 7 Application Server Memory Guidelines 7 Determining PeopleSoft AppServer memory usage under NT ................................................................................................ 8 Determining if excessive memory swapping happens under NT............................................................................................. 8 Determining memory usage on UNIX ..................................................................................................................................... 9 Determining if excessive memory swapping happens under UNIX ...................................................................................... 10 App Server Recycle Count 10 Background ............................................................................................................................................................................ 10 Recommendation.................................................................................................................................................................... 10 Shared Cache for Application Server PSAPPSRV Instances 11 14

CHAPTER 3 WEB SERVER GUIDELINES..................................................................................................................... 15 WEBLOGIC Confirm Minimum Required Service Pack is Installed Set ThreadCount Confirm JRE Set JVM Heap Size Set File Descriptor Lower OS TCP Timeout/Cleanup Settings JVM Garbage Collection and JVM Heap Size Servlet Reload Capturing JOLT Request Timing Traces WEBSPHERE Setup and Configuration Set ThreadCount Confirm JRE JVM Garbage Collection and JVM Heap Size Other JVM Options Port Usage Servlet Reload 15 15 15 15 16 16 16 17 17 17 18 18 18 19 19 19 19 20

Capturing JOLT Request Timing Traces Using the Resource Analyzer with the WebSphere Application Server Advanced Single-Server Edition

20 21

CHAPTER 4 WEB BROWSER CONFIGURATIONS..................................................................................................... 22 Microsoft Internet Explorer Netscape browser 22 23

HTTP 1.1-Compliant Web Browser 23 Which browsers are HTTP 1.1-compliant?............................................................................................................................ 23 CHAPTER 5 ADDITIONAL CONFIGURATIONS ......................................................................................................... 25 Browser Compression Homepage Caching Navigation Pages Caching HTTP KeepAlive 25 25 27 27

Reducing TCP Wait Time 27 For NT.................................................................................................................................................................................... 27 For AIX.................................................................................................................................................................................. 28 For HPUX 11 or Solaris 2.8................................................................................................................................................... 28 For HPUX 11 ......................................................................................................................................................................... 28 For Solaris prior to 2.8 ........................................................................................................................................................... 28 AIX Thread Model Reduce Unnecessary Logging Timing Out Scan Time Setting for App Messaging PubSub Error and App Server Log File Growing 29 29 29 31 31

CHAPTER 6 KERNEL CONFIGURATIONS .................................................................................................................. 33 For Sun Solaris For HP-UX 33 33

For Compaq Tru64 34 ipc:.......................................................................................................................................................................................... 34 inet: ........................................................................................................................................................................................ 35 vfs:.......................................................................................................................................................................................... 35 socket: .................................................................................................................................................................................... 35 proc: ....................................................................................................................................................................................... 36 APPENDIX A VALIDATION AND FEEDBACK ............................................................................................................ 37 Customer Validation Field Validation 37 37

APPENDIX B REVISION HISTORY ................................................................................................................................ 38 Authors................................................................................................................................................................................... 38 Reviewers............................................................................................................................................................................... 38 Revision History .................................................................................................................................................................... 38 5

Online Performance Configuration Guidelines for PeopleTools 8.4x v3

2/3/2004

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 your PeopleSoft system. In this red paper, we discuss guidelines on how to diagnose a PeopleSoft online transaction environment, including PeopleSoft Internet Architecture (PIA) and portal configuration. Configuration of batch processes is not covered in this document. 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 every conceivable problem that one could encounter with Tuxedo, the PeopleSoft Application Server, or your web server is not addressed in this document, the issues that appear in this document are the problems that prove to be the most common or troublesome.

STRUCTURE OF THIS RED PAPER


This red paper consists provides guidance across the major PIA components: application server, web server, web browser, and OS kernel. Keep in mind that PeopleSoft updates this document as needed so that it reflects the most current feedback 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 Customer Connection.

RELATED MATERIALS
This paper is not a general introduction to environment tuning and we assume that our readers are experienced IT professionals, with a good understanding of PeopleSofts 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. We recommend that before you read this document, you read the PIA-related information in the PeopleTools PeopleBooks to ensure that you have a well-rounded understanding of our PIA technology. Note: Much of the information in this document eventually gets incorporated into subsequent versions of the PeopleBooks. Many of the fundamental concepts related to PIA are discussed in the following PeopleSoft PeopleBooks: PeopleSoft Internet Architecture Administration (PeopleTools|Administration Tools|PeopleSoft Internet Architecture Administration) Application Designer (Development Tools|Application Designer) Application Messaging (Integration Tools|Application Messaging) PeopleCode (Development Tools|PeopleCode Reference) PeopleSoft Installation and Administration PeopleSoft Hardware and Software Requirements Additionally, we recommend that you read the BEA documentations (in HTML format) delivered with the BEA CD-ROM to gain a thorough understanding of the BEA products that PeopleSoft uses -- Tuxedo, Jolt, and WebLogic Server, as well as documentations from IBM if you plan to deploy WebSphere. Refer to your PeopleSoft Installation and Administration book for directions on accessing the delivered BEA and IBM documentations.
Copyright PeopleSoft Corporation 2004. All rights reserved.

Online Performance Configuration Guidelines for PeopleTools 8

2/3/2004

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 four seconds response time for every web page refresh (as opposed to just a few transactions), it is very likely a problem with application server memory. These problems are most likely caused by "memory swapping". These are the same problems you experience when trying to run Microsoft PowerPoint, Word and Excel on a PC with 12 MB of memory. Here are some things you can do to see if you need more memory for your application server. 1. Make sure 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, this will affect performance. The extra PSAPPSRV processes will not only take up memory space and CPU time from the OS, the main issue is that each PSAPPSRV will not be 'sufficiently' cached. I.e. each PSAPPSRV can only cache a portion of the user panels. It will take much longer to fully cache each PSAPPSRV. To determine the queue length of the specific domain, do the following steps: 1. 2. 3. 4. Run psadmin. Go to PeopleSoft Domain Administration for the specific domain name. Select TUXEDO command line. Run the command pq.

2.

Here is a guideline for the memory footprint for the PSAPPSERV: CRM and HRMS use about 100-150 MB per app 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 use 150-300 MB per process. You get about 20-30 users per process. So, for example, if you have 1 GB of memory available for a Financials application server, boot no more than four PSAPPSRV processes.

3. 4.

Make sure you include all test/dev/prod domains on a computer in your calculation. A common problem is having four large domains on one computer with insufficient memory. Check your memory utilization on the app server when you experience performance problems. Check for swapping by using the memory monitoring procedures outlined in the following sections. 7

Copyright PeopleSoft Corporation 2004. All rights reserved.

Online Performance Configuration Guidelines for PeopleTools 8 5.

2/3/2004

If you are swapping, you need to either add more memory or reduce the number of domains or PSAPPSRV processes on the computer.

Determining PeopleSoft AppServer memory usage under NT


Use NT TaskManager to monitor all the PeopleSoft processes. PeopleSoft processes have a process name prefix with ps. Start TaskManager and select View from the menu bar, and then choose Select Columns. Pick the Memory Usage and Virtual Memory Size columns. Sort the processes by name, and the two memory columns will tell you approximately the amount of memory each PeopleSoft process is using. "Memory Usage" is not the entire memory consumption of the process, but only the amount of physical RAM that process is using. However, with NT, an application may be using much more virtual memory (i.e., the paging file) than physical memory, so if you're gauging memory at all, you have to have both these fields selected. The memory usage columns will include the shared libraries loaded into each process; therefore, if you add up all the processes, you will be double-counting the shared libraries portion. Since PeopleSoft shared 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 higher than 70% of the Real memory of the server.

Determining if excessive memory swapping happens under NT


Start NT Performance Monitor, perfmon.

Copyright PeopleSoft Corporation 2004. All rights reserved.

Online Performance Configuration Guidelines for PeopleTools 8 Add the Object Counter, under Memory, and then the Page/sec.

2/3/2004

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 the Page/sec goes above 100 hard pages per second, there is a swapping problem. The number of PSAPPSERV processes should be reduced or more memory needs to be added to the server.

Determining memory usage on UNIX


To help end-users 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 above parameters. The monitoring shell scripts can be obtained from the Customer Connection web site (https://www.peoplesoft.com/corp/en/login.jsp). Login to Customer Connection and select Products + Industries on the right. Choose Enterprise Product Lines, select Enterprise Tools and Technology, select Enterprise PeopleTools and select PeopleTools 8.4 underneath. In the middle of the page is the Red Paper section, which you will find the latest revision of this red paper and the shell scripts for download.

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 ?? 100 Tue Oct 23 23:00:33 PDT 2001
Copyright PeopleSoft Corporation 2004. All rights reserved.

Online Performance Configuration Guidelines for PeopleTools 8

2/3/2004

For all PS Processes: Resident memory size is: CPU for PS Processes: Virtual memory size is: For all PSAPPSRV Processes: Resident memory size is: CPU for PS Processes: Virtual memory size is: --108.453 MB 9 % 106.559 MB 123.543 MB 11 % 198.098 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 and the free memory of the server falls below 30%, the RecycleCount of the AppServer should be lowered. The output of ps_chk_domain.sh has divided the portion of PSAPPSRV processes from the entire domain so that the end-user (or system administrator) can get a better understanding of the distribution of the memory resources. It is recommended that the total resident memory for the entire PS Processes should not exceed 70% of the total real memory available on the server.

Determining if excessive memory swapping happens 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 check the po column 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.

APP SERVER RECYCLE COUNT


This configurable parameter dictates the number of services after which the AppServer will automatically restart.

Background
The AppServer processes will 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 new requests (new pages/components accessed) 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 the file system will occur and paging will impact user experience. In order to effectively manage the memory footprint of the AppServer, keeping the Recycle Count at a realistic level is important. When the AppServer reaches the specified Recycle Count value, the AppServer will terminate and restart itself. When the AppServer terminates, the occupied memory will be released.

Recommendation
It is recommended to set recycle count at 5000.
Copyright PeopleSoft Corporation 2004. All rights reserved.

10

Online Performance Configuration Guidelines for PeopleTools 8

2/3/2004

The recycle count should be adjusted so that no memory swapping is introduced because of a high recycle count value. (See the session above for how to determine memory swapping.) To minimize the cost of re-caching the AppServer, it is important to enable File Cache on the AppServer. To enable server caching, set the EnableServerCaching=2 (the default value is 1 for 8.42 and below, 2 for 8.43 and above).
;----------------------------------------------------------------------; EnableServerCaching ; ; ; 0 1 2 Server File caching disabled Server File caching limited to most used classes Server File caching for all types

EnableServerCaching=2 ;-----------------------------------------------------------------------

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 have to pre-load all the necessary cache objects before you can enable the Shared Cache feature. The PeopleSoft installation is supplied with an Application Engine program called LOADCACHE to assist customers in generating this pre-loaded shared cache. Shared Cache provides the following benefits: Saved disk space, since all AppServer processes use the same common directory to read the file cache contents. Faster operation, since all the managed objects are cached into the common directory ahead of time, instead of retrieving from the database tables on demand. To run the LOADCACHE program: 1. 2. Make sure that the database that the application server runs against produces clean SYSAUDIT runs. If SYSAUDIT is not clean, the LOADCACHE program may fail. Make sure the user who is executing the program has the Load Application Server Cache component defined to its permission list in User Profile. Find or add the Utilities page for the users permission list and add the component Load Application Server Cache.

Copyright PeopleSoft Corporation 2004. All rights reserved.

11

Online Performance Configuration Guidelines for PeopleTools 8 3.

2/3/2004

(For 8.42 and below only) Check your psprcs.cfg file (Process Scheduler configuration file). 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.

Note. Do not enable shared caching for Process Scheduler. Make sure ServerCacheMode=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.

In PeopleTools 8.40 or above: Select PeopleTools, Utilities, Administration, Load Application Server Cache.

5. 6.

Enter the appropriate Run Control ID (you may have to add a new value here). The Load Application Server Cache page appears. 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\

Copyright PeopleSoft Corporation 2004. All rights reserved.

12

Online Performance Configuration Guidelines for PeopleTools 8

2/3/2004

7.

Select the correct process scheduler and click Run. Navigate to PeopleTools>Process Monitor. Wait for the process to become Success. The first time you run the process may take 4-5 hours.

Note. Run the program with Run Location set to Server.

8. 9.

Shut down your application server domain. 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] ;================================================= ; 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

Copyright PeopleSoft Corporation 2004. All rights reserved.

13

Online Performance Configuration Guidelines for PeopleTools 8 10. Create the <PS_HOME>\<DomainName>\cache\share directory for the appropriate domain.

2/3/2004

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

PSAPPSRV INSTANCES
The number of PSAPPSRV instances should be kept to a low number. As an example, during PeopleTools testing, we only use three PSAPPSRV processes to support 80 testers with heavy concurrent testing. PSAPPSRV needs to cache PeopleSoft metaobjects in order to be effective. Too many PSAPPSRV process instances will make it difficult to fully cache all of them. This is even more difficult for a Win2000/NT Tuxedo domain because the Bulletin-board process will try to use the same PSAPPSRV process id (instead of performing a round-robin like in UNIX). In general, it is a good idea to allow queuing to happen during peak working hours. As a simple rule, it is normal to allow about 10 user to be waiting in queue during peak load. It is faster to wait for a busy PSAPPSRV to free up than to spawn a new PSAPPSRV. Spawning extra PSAPPSRV instances to handle high-volume workload is not recommended. Spawning is a relatively new feature in Tuxedo, and is not necessary to run the PeopleSoft application servers. There is actually a high cost incurred when each new PSAPPSRV process is spawned. Each process has to establish its cache, which takes time, CPU, and memory. Instead, the "min" setting should be used to indicate how many PSAPPSRV processes are required for proper throughput. To disable spawning, set the Min Instances the same as Max Instances.

Copyright PeopleSoft Corporation 2004. All rights reserved.

14

Online Performance Configuration Guidelines for PeopleTools 8

2/3/2004

Chapter 3 Web Server Guidelines WEBLOGIC CONFIRM MINIMUM REQUIRED SERVICE PACK IS INSTALLED
PeopleSoft Platform Database lists the minimum required service pack for WebLogic Server 6.1. %WLS_HOME%/logs/log.txt specifically indicates the service pack installed. For PeopleTools 8.40 and 8.41 Service Pack 1 should be used, for PeopleTools 8.42 Service Pack 2 should be used, and for PeopleTools 8.43 Service Pack 4 should be used. Under normal circumstances, WebLogic should be using the "Posix Performance Pack", and this will use the native OS's socket implementation. When the "Performance Pack" is not loaded properly, generic socket implementation will be used, which is not efficient and there could be 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".

SET THREADCOUNT
For WebLogic, change the entry in %WLS_HOME%/<peoplesoft web domain>/config.xml as
<Server ListenPort="80" Name="PIA" Notes="The PIA server is the default server for PeopleSoft 8.40 Internet Architecture." TransactionLogFilePrefix="C:\Apps\bea\wlserver6.1/config/peoplesoft/logs/" XMLEntityCache="XMLCacheMBean" XMLRegistry="PeopleSoft IG XML Registry"> <ExecuteQueue Name="default" ThreadCount="N" /> ... </Server>

where N should be based on the peak concurrent HTTP usage at any given point of day: the number of HTTP actions (such as posting a HTTP request or downloading a HTTP response) that can be executed concurrently. This should not include users who are logged in but not actively performing any HTTP action. To preserve system resources, administrators can fine-tune the number of ExecuteThread to be a percentage of the estimated peak value, such as N = 90% of peak usage. One way to obtain a more accurate peak value is to monitor the thread usage via the WebLogic console. Note: When you increase the ThreadCount, you are allowing more socket connections to be established. You will need to 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 also need to 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
Copyright PeopleSoft Corporation 2004. All rights reserved.

15

Online Performance Configuration Guidelines for PeopleTools 8 Confirm from BEA's platform page that the installed JRE is certified (may require OS patches). http://e-docs.bea.com/wls/certifications/certifications/index.html Note: For Linux it is necessary to set an environment variable to work around a JRE bug.

2/3/2004

$ export J2SE_PREEMPTCLOSE=1

The rationale 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 applies to JRE1.2.2, 1.3 and 1.3.1.

SET JVM HEAP SIZE


Set JVM heap size to 256MB or higher. Many customers have their JVM heap size set to a minimum heap size of 64 MB and maximum size of 256 MB. Setting the JVM heap size to a larger minimum value (preferably equals the maximum value) avoids the performance hit incurred by dynamically growing the JVM and improves predictability; it also lessens the frequency for the JVM's garbage collection (GC). With the improved, thread-based garbage collection mechanism in JDK 1.3 the impact on workload capacity is greatly reduced when GC occurs. It also eliminates the inefficiencies of earlier JDKs when heap size exceeds 512 MB. See the JVM Heap Size section below to learn how to change the heap size for a specific web server.

SET FILE DESCRIPTOR


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 makes to the appserver, every connection that has to open back to a client, plus 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. It is implicitly limited by hardware resources, mainly system memory.

LOWER OS TCP TIMEOUT/CLEANUP SETTINGS


Socket-based applications that are opening and closing hundreds or thousands of sockets need to have sockets they have marked as closed, truly closed. Once a process closes a socket, it is really only marked as closed until the OS, based on a cleanup/flush timeout, makes that socket available again. The default value for this is 11 minutes. Planet PeopleSoft implements 1 minute TCP wait time. Information on this is provided by BEA as well. See the Reducing TCP Wait Time section to learn how to change the TCP wait time for a specific OS.
Copyright PeopleSoft Corporation 2004. All rights reserved.

16

Online Performance Configuration Guidelines for PeopleTools 8

2/3/2004

JVM GARBAGE COLLECTION AND JVM HEAP SIZE


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 will be invoked to relocate the dead objects and free up more space for the program to continue its operation. To monitor the amount of heap usage and the time WebLogic takes for the Garbage Collection, you can add the verbosegc switch to the setEnv.cmd script file. You have to start WebLogic from the command line -- startPIA.cmd (instead of an NT service) to see the GC output. In setEnv.cmd,
SET JAVA_OPTIONS=-hotspot ms256m mx256m 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 keep the performance degradation from garbage collection at a minimum, users should use the command line option noclassgc. This will inhibit 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.

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 so checking and reloading would only incur unnecessary work, and thus ServletReloadCheckSecs should be set to 1 for each of the components. (If the field is not present it defaults to 0 always reload, which is undesirable. In that case the field should be introduced with value 1.)

CAPTURING JOLT REQUEST TIMING TRACES


The Jolt Request Timing trace can be used to determine if there is an unexpected server trip to the back end, such as when the Navigation cache is failing. It also provides a time order sequence archive log of events to the web server.
Copyright PeopleSoft Corporation 2004. All rights reserved.

17

Online Performance Configuration Guidelines for PeopleTools 8 Here are the instructions on how to collect JOLT request timing traces for WebLogic: 1. 2. Stop the web server.

2/3/2004

In the WebLogic domain directory, open startPIA.cmd/startPIA.sh and add a command-line option -Dloggersize=-1 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=-1weblogic.Server Restart the web server. Before logging on, submit the following URL to reset the existing log: http://<hostname:port number>/psp/ps/?cmd=resetlog. A screen of messages will appear on the browser window. That's the log that has been collected. Point to the logon URL and logon as usual. After logging on, point to the above URL again (http://<hostname:port number>/psp/ps/?cmd=resetlog) to retrieve the log. Copy and paste the log from the browser to a text file.

3. 4.

5. 6. 7.

(Steps 4-7 can be repeated for a more comprehensive collection of data.)

WEBSPHERE SETUP AND CONFIGURATION


Note! PeopleTools 8.4 supports 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 you are installing WebSphere into a supported environment. For detailed installation instructions, especially the required eFixes needed for WebSphere please refer to the WebSphere Install document in Customer Connection. Very important!: to install WebSphere eFixes. The user can install eFixes in any order. To remove eFixes, rollback eFixes in the reverse order (that you applied)

SET THREADCOUNT
In %WAS_HOME%/config/server-cfg.xml, locate the following line:
<webContainer xmi:id="WebContainer_1" installedWebModules="WebModuleRef_1 WebModuleRef_2 WebModuleRef_3 WebModuleRef_9 WebModuleRef_10 WebModuleRef_11"> <threadPool xmi:id="ThreadPool_1" minimumSize="n" maximumSize="N" inactivityTimeout="100" isGrowable="false"/> </webContainer>

where N should be based on the peak concurrent HTTP usage at any given point of day: the number of HTTP actions (such as posting a HTTP request or downloading a HTTP response) that can be executed concurrently. This should not include users who are logged in but not actively performing any HTTP action.

Copyright PeopleSoft Corporation 2004. All rights reserved.

18

Online Performance Configuration Guidelines for PeopleTools 8

2/3/2004

To preserve system resources, administrators can fine-tune the number of thread to be a percentage of the estimated peak value, such as N = 90% of peak usage.

CONFIRM JRE
Note. When you install WebSphere, IBMs JRE 1.3 is installed automatically.

JVM GARBAGE COLLECTION AND JVM HEAP SIZE


(Refer to the WebLogic section on how to decide the JVM heap size.) 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/p eoplesoft/PORTAL/WEBINF/lib/entappletbase.jar;${WAS_ROOT}/installedApps/peoplesoft/PORTAL/WEBINF/lib/entapplethttp.jar;${WAS_ROOT}/installedApps/peoplesoft/PORTAL/WEBINF/lib/entappletp10.jar;${WAS_ROOT}/installedApps/peoplesoft/PORTAL/WEBINF/lib/entappletp12.jar;${WAS_ROOT}/installedApps/peoplesoft/PORTAL/WEBINF/lib/entappletp5.jar;${WAS_ROOT}/installedApps/peoplesoft/PORTAL/WEBINF/lib/entappletp7.jar;${WAS_ROOT}/installedApps/peoplesoft/PORTAL/WEBINF/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 verbosegc can also be turned on here (verboseModeGarbageCollection).

OTHER JVM OPTIONS


Other JVM options, if needed (e.g. -noglassgc), should be inserted 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>

PORT USAGE
WebSphere uses a fair number of ports, which may or may not cause conflict with existing port usage at the host. A list of default ports consumed by WebSphere is shown as follows:
9080 9443 80 443 9090 - WebSphere native http - WebSphere native https - IBM Http Server (optional) - IBM Http Server SSL (optional) - WebSphere Admin

Copyright PeopleSoft Corporation 2004. All rights reserved.

19

Online Performance Configuration Guidelines for PeopleTools 8


2102 9000 7501 900 9070 - Object level tracing - locationServiceDaemon - traceService - bootstrap - namingServiceSettings

2/3/2004

SERVLET RELOAD
The servlet reload parameters in WebSphere are located in %WAS_HOME%/<peoplesoft web domain>/[PORTAL/PSIGW/PSINTERLINKS]/WEB-INF/ibm-web-ext-xmi (usually this is the first line):
<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 a file may not exist. In that case create the file 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" 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:
< 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"> <reloadInterval xsi:nil="true"/> <application href="META-INF/application.xml#Application_ID"/> </applicationext:ApplicationExtension>

Refer to the same topic in WebLogic for further information.

CAPTURING JOLT REQUEST TIMING TRACES


Here are the instructions on how to collect JOLT request timing traces for WebSphere: 1. 2. Stop the web server. In %WAS_HOME%/config/server-cfg.xml, locate the following lines:

Copyright PeopleSoft Corporation 2004. All rights reserved.

20

Online Performance Configuration Guidelines for PeopleTools 8


<processDefinition xmi:type="server:JavaProcessDef" xmi:id="ProcessDef_1" executableName="${JAVA_HOME}/bin/java" commandLineArguments="-Dloggersize=-1" workingDirectory="${WAS_ROOT}/bin" executableTargetKind="JAVA_CLASS" executableTarget="com.ibm.ws.bootstrap.WSLauncher">

2/3/2004

3. 4.

Restart the web server. Before logging on, submit the following URL to reset the existing log: http://<hostname:port number>/psp/ps/?cmd=resetlog. A screen of messages will appear on the browser window. That's the log that has been collected. Point to the logon URL and logon as usual. After logging on, point to the above URL again (http://<hostname:port number>/psp/ps/?cmd=resetlog) to retrieve the log. Copy and paste the log from the browser to a text file.

5. 6. 7.

(Steps 4-7 can be repeated for a more comprehensive collection of data.)

USING THE RESOURCE ANALYZER WITH THE WEBSPHERE APPLICATION SERVER ADVANCED SINGLE-SERVER EDITION
The Resource Analyzer is a new tool for the Advanced Single Server Edition of WebSphere Application Server. For information on using the Resource Analyzer, refer to 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, do the following: 1. Install the PmiSingleServerBean.ear file (available under the %WAS_HOME%\installableApps directory): 1. 2. 3. 2. 3. Go to the %WAS_HOME%\bin directory. Enter the command: Press Enter when prompted for the Default data source JNDI name and the JNDI name. This allows the use of default values as required by the Resource Analyzer.

seappinstall -install ..\installableApps\PmiSingleServerBean.ear -ejbdeploy false

Restart the application server. Start the Resource Analyzer: 1. 2. Go to the %WAS_HOME%\bin directory. Enter the command: ra hostname 900 AES.

Copyright PeopleSoft Corporation 2004. All rights reserved.

21

Online Performance Configuration Guidelines for PeopleTools 8

2/3/2004

Chapter 4 Web Browser Configurations


Take advantage of the browsers caching ability to reduce unnecessary checking and downloading of the same Internet objects within the online transaction session. The Internet objects that most likely remain unchanged during an online session are: Graphics objects. Style sheets. Java scripts. Some HTML pages (such as the PIA Login page). The following web browser settings are the recommended configurations. These configurations are usually the default settings of the respective browsers. Please verify to ensure correctness.

MICROSOFT INTERNET EXPLORER


Here is the recommended configuration: Internet Option->Temporary Internet Files-> Settings, Automatically.

Copyright PeopleSoft Corporation 2004. All rights reserved.

22

Online Performance Configuration Guidelines for PeopleTools 8

2/3/2004

NETSCAPE BROWSER
Here is the recommended configuration: 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 un-compressed, therefore the web server will not be able to send any compressed HTML file to the browser (even though the configuration.properties file has the Compress Response switch turned on). Most newer browsers since 1998/1999 have been equipped to support the HTTP 1.1 standard known as "content-encoding." Essentially 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 it and then renders the page. This is an important performance feature for the web browsers that are using a slower bandwidth medium, such as dialup connections or 56K lines.

Which browsers are HTTP 1.1-compliant?


Netscape 4.5 and above, including Netscape 6 and 7. Internet Explorer (IE) versions 4 and above (other than IE Mac versions 4.5/5 which do not support HTTP 1.1 compression).
Copyright PeopleSoft Corporation 2004. All rights reserved.

23

Online Performance Configuration Guidelines for PeopleTools 8 Here are the steps to verify if Internet Explorer is configured to use the HTTP 1.1 protocol: 1. Open the Internet Options dialog box. If using IE 4, this is located under the View menu. If using IE 5 or above, this is located under the Tools menu. 2. 3. Select the Advanced tab. Under HTTP 1.1 settings, verify that Use HTTP 1.1 is selected (see figure below).

2/3/2004

Copyright PeopleSoft Corporation 2004. All rights reserved.

24

Online Performance Configuration Guidelines for PeopleTools 8

2/3/2004

Chapter 5 Additional Configurations BROWSER COMPRESSION


If compressResponse is set to true, compression in the communication between the web server and the browser is enabled. Setting it to false turns off the compression. Gzip and Compress are supported. The default is true. If compressCacheFiles is set to true, compression of cache files from the web server to the browser is enabled. Only those cache files that have their mime-types specified in the list of compressMimeTypes will be compressed. Gzip and Compress are supported. The default is set to false 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 it should be set to true. compressMimeTypes 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 compressCacheFiles is set to true. Gzip and Compress are supported. The default is: 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, but that comes with a price the 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, compression should be turned off. Note: For PeopleTools up to 8.41 the compression settings would cause an error for a certain update of Internet Explorer 6.0. In particular, the PIA menu may disappear when a user opens a PIA page. So it is advised to turn them off. This is fixed in PeopleTools 8.42 onwards. Note: Some query entries are truncated when IE tries to open queries in Microsoft Excel. A workaround (for 8.43 and above) is to turn off query compression via an optional parameter compressQuery=false in configuration.properties. The parameter turns off JUST queries.

HOMEPAGE CACHING
Caching improves system performance by reducing service requests from the web server to the application server. If PortalCacheObjects is set to "true" 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 PortalCacheObjects is set to true, object changes won't take effect until the objects become stale, and are refreshed (see PortalObjectStaleInterval setting below), or the web server is restarted. (Default setting: true) PortalCacheStaleInterval 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 PortalCacheObjects. (Default setting: 86200 (24 hours))

Copyright PeopleSoft Corporation 2004. All rights reserved.

25

Online Performance Configuration Guidelines for PeopleTools 8

2/3/2004

The portal automatically throws away all cache entries in memory after CachePurgeAllHitCount requests. Note: This setting applies for all web sites on this web server. It should be the same value, within all configuration.properties files on this web server. Setting this value to -1 disables hitcount purging. (Default setting: 1000) The portal automatically throws away all stale cache entries after CachePurgeStaleInterval seconds. This setting also applies for all web sites on this web server. Setting this value to -1 disables stale cache purging. (Default setting: 300) The portal will cache proxied javascripts to improve performance if portalUseCachedProxiedJS is set to "true". Target content is cached in memory when the TargetContent tag in the template specifies that the target should be cached. Only static content should be displayed 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> Pagelets can be cached using the same mechanism. The CacheTargetContent setting should be "true" to allow caching of target content. Setting this to "false" disables all target content caching in the portal servlet, even if the target tag specifies cached content. PortalCacheObjects=true PortalCacheStaleInterval=86400 CachePurgeAllHitCount=1000 CachePurgeStaleInterval=300 portalUseCachedProxiedJS=true CacheTargetContent=true 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 should be beneficial for either a production or development environment. It is recommended to have the homepage cache turned on. The default values of the parameters in PIA configuration.properties are: PortalCacheHomepageOnBrowser=true PortalHomepageStaleInterval=1200 PortalBrowserProps=browserprops.xml StaleInterval is measured in seconds. Note: The file browserprops.xml specifies which web browser could be used with homepage caching. Please verify to make sure your choice of browser is enabled for caching.

Copyright PeopleSoft Corporation 2004. All rights reserved.

26

Online Performance Configuration Guidelines for PeopleTools 8

2/3/2004

NAVIGATION PAGES CACHING


As with homepages, navigation pages can be cached on each user's browser. This will improve the users response time in traversing between cached menu pages. The portal administrator can set system-wide options for the navigation cache by using the Define Personalizations page and modifying the value for METAXP. It is recommended to set the METAXP to a high value. This 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. Go to PeopleTools-> Personalization->Personalization Options. Type PPTL (PeopleTools) as the Option Category level value. Click on the Format tab and then click on 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, since the users browsers already have cache control set by the previous value of METAXP, the browser cache has to be deleted for the new METAXP to take effect. A user can override the value of METAXP for his/her own browsing 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. Navigation caching should not be used during development time because any newly added menus will not be reflected in the cache. Navigation caching should only be used 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 will occupy a socket pair between the browser and the web server. When the KeepAlive timing is set too long, the following problems are created: The web server will need to manage many idle connections. Keeping too many socket handles around will reduce the number of sockets available for new connection use. It is generally advised that in 8.4 KeepAlive should be turned on, which is the default for both WebLogic and WebSphere.

REDUCING TCP WAIT TIME


The default TCP wait time for both NT and most UNIX operating systems is four minutes, which is too long for PIA 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 NT
Use the registry editor, regedit, and create a REG_DWORD named TcpTimedWaitDelay under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters.

Copyright PeopleSoft Corporation 2004. All rights reserved.

27

Online Performance Configuration Guidelines for PeopleTools 8 Set the value to 60 seconds (this one is measured in seconds).

2/3/2004

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. Using the default or setting it to 2 for a slower network is recommended. Note: Be careful when you use this command. The no command performs no range checking, therefore it accepts all values for the variables. If used incorrectly, the no command can cause your system to become inoperable. This command only operates on the currently running kernel. The command must be run again after each startup or after the network has been configured.

For HPUX 11 or Solaris 2.8


As root, enter:
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 be automatically set at boot time.

For HPUX 11
You can place the ndd settings inside the file /etc/rc.config.d/nddconf 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.
Copyright PeopleSoft Corporation 2004. All rights reserved.

28

Online Performance Configuration Guidelines for PeopleTools 8

2/3/2004

AIX THREAD MODEL


IBM has recommended the following environment variables setup to improve the Threading model with PeopleSofts PIA. Set up the following environment variables for the PeopleSoft Application Server user, database user and the web server user: For korn shell users, please 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 users, please 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

REDUCE UNNECESSARY LOGGING


For WebLogic, config.xml should have logging set to false by default: <WebServer DefaultWebApp="PORTAL" LogFileBufferKBytes="64" LogFileName="C:\Apps\bea\wlserver6.1/config/peoplesoft/logs/PIA_access.log" LoggingEnabled="false" MaxLogFileSizeKBytes="50000" Name="PIA" WAPEnabled="true" />

TIMING OUT
There are in general three types of timeouts: 1. 2. Timeout during a PIA transaction (intra-transactional). When the timeout expires, the transaction will fail and need to be resubmitted. Timeout between PIA transaction (inter-transactional). When the timeout expires, the user has been idling for too long, and the resources associated with the user will be freed. Need to relogin to re-establish the state. Timeout that "reserves" a resource until the expiration time before putting it back into the pool for recycling (e.g. tcp_timewait).

3.

It should be noted that for the intra-transactional timeouts, their values should be staged. In other words, the end-to-end timeout value should always be greater than that of its intermediate leg(s). With this in mind we can look at our timeout values, from bottom up: Appserver: Service Timeout = x sec (default 300) (in psappsrv.cfg) Type=Intra-transaction, and it includes the time it takes at the DB server. According to the PIA Answer Book:

Service Timeout
Copyright PeopleSoft Corporation 2004. All rights reserved.

29

Online Performance Configuration Guidelines for PeopleTools 8

2/3/2004

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). PIA: tuxedo_send_timeout = w sec (default 50) ; tuexdo_receive_timeout = x sec (default 600) (in pstools.properties) The receive timeout is also intra-transactional, and it has to be bigger than the 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 inter-transactional, as one has to re-login when the servlet expires (technically this is a security setting). The meta refresh tag in seconds. It should be less than or equal to the session.timeout for the servlet. For WebLogic 6.1 it should be less than or equal to <session-timeout> as discussed below. JOLT: Client Cleanup Timeout = x min (default 60) (in psappsrv.cfg) This is inter-transactional. 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 will terminate a client connection. Client disconnects are transparent to a client, and a user just needs to click the mouse to cause a reconnection. Webserver session timeout: <session-config> <session-timeout>x</session-timeout> </session-config> (in <webserver home dir>/<peoplesoft web domain>/PORTAL/WEB-INF/web.xml) This is inter-transactional. The number of minutes (WebLogic) to wait before invalidating an unused session. Note that setting this value too high would tie up web server resources, especially when users close the browser instead of logging out gracefully. 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) This, unfortunately, serves as both inter-transactional and intra-transactional 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. 2. The total amount of time it takes to receive an HTTP GET request; The amount of time between receipt of TCP packets on a POST or PUT request; 30

Copyright PeopleSoft Corporation 2004. All rights reserved.

Online Performance Configuration Guidelines for PeopleTools 8 3. The amount of time between acknowledgements on transmissions of TCP packets in responses.

2/3/2004

A common problem: PIA: Timeout errors on PeopleSoft pages on PIA even when people are using the page. Solution: Increase the timeout values in the servlet session timeout AND web server session timeout.
sessionTimeout = 3600 sec (in configuration.properties) <session-config> <session-timeout>60</session-timeout> </session-config> (in web.xml)

Increase values in configuration.properties in Apache Group->Apache\htdocs\PeopleSoft "meta-tag" session timeout to be 3600. (This will allow users to use the page for 60 minutes with no timeout errors.) Increase the values in pstools.properties if long queries are common: tuxedo_receive_timeout to 1500

SCAN TIME SETTING FOR APP MESSAGING


An Oracle database user who has database logging turn on may see a large volume of archive log created. The contents of the Oracle archive log are:
SET TRANSACTION READ WRITE; INTERNAL; COMMIT;

The archive log (or redo log) was 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 PeopleSoft system was possible in 3-tier mode. 2-tier mode was fine. 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
Copyright PeopleSoft Corporation 2004. All rights reserved.

31

Online Performance Configuration Guidelines for PeopleTools 8 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

2/3/2004

RESOLUTION: This problem only appears when the database is shutdown while the appserver is running. The nightly backup was inadvertently doing this. We tested shutting down everything in the correct order and this problem does not occur. The PSSUBHND instances are too busy erring out to handle even one subscription. The only way to fix this is to shut everything down (except for the OS) and restart it in the correct order. For some reason, you can shut down the appserver and Process Scheduler (not the DB) and re-start them. This does not fix the problem, though this might be a combination of the fact there is an under-configured PSSUBHND.

Copyright PeopleSoft Corporation 2004. All rights reserved.

32

Online Performance Configuration Guidelines for PeopleTools 8

2/3/2004

Chapter 6 Kernel Configurations


For a large environment of many domains the following kernel parameters will provide a good deal of resources. NOTE: kernel parameters this size are not uncommon in our user environments.

FOR SUN SOLARIS


MSGMAP=2048 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
Copyright PeopleSoft Corporation 2004. All rights reserved.

33

Online Performance Configuration Guidelines for PeopleTools 8 maxuprc=512 maxusers=2000 msgmap=2048 msgmax=65535 msgmnb=65535 msgmni=1024 msgseg=32767 msgtql=2046 semmap=512 semmni=512 semmns=4096 semmnu=4096

2/3/2004

FOR COMPAQ 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


Copyright PeopleSoft Corporation 2004. All rights reserved.

34

Online Performance Configuration Guidelines for PeopleTools 8 sem_msl = 1000 sem_opm = 400 sem_ume = 1048 sem_vmx = 32767 sem_aem = 16384

2/3/2004

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
Copyright PeopleSoft Corporation 2004. All rights reserved.

35

Online Performance Configuration Guidelines for PeopleTools 8 sominconn = 65535

2/3/2004

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 large numbers of Cobol programs are to be compiled. Many applications, for example Oracle and the Tru64 Java Fast VM, need per_proc_data_size to be set correctly. However, this number should not be larger than the physical memory available on the system, otherwise swapping will occur.

Copyright PeopleSoft Corporation 2004. All rights reserved.

36

Online Performance Configuration Guidelines for PeopleTools 8

2/3/2004

Appendix A Validation and Feedback


This section documents the 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 is working with PeopleSoft Global Services to get feedback and validation on this document. Lessons learned from these field experiences will be posted here.

Copyright PeopleSoft Corporation 2004. All rights reserved.

37

Online Performance Configuration Guidelines for PeopleTools 8

2/3/2004

Appendix B Revision History


Authors
Christopher Che, manager of the PeopleTools Performance Team, and Philip Ho, performance engineer, are the lead authors of this red paper.

Reviewers
The following people reviewed this red paper: Eric Gray, Director of Performance and Benchmark Richard Sze, Director of PeopleTools Server Tools Maurizio Gianola, VP of PeopleTools Enterprise Development Carl Mills, information developer

Revision History
1. 2. 07/01/2002: Created document for PeopleTools v 8.4 (inherited from 8.1 performance red paper, version 8). 12/20/2002: Revision after collecting feedback Chapter 3 Web Server Guidelines Updated service pack information for WebLogic Updated BEA link, added workaround for Linux Added section on load balancing Chapter 5 Additional Guidelines Added comment on compression and high speed link Rearrange and expand section on Navigation Pages Caching Added explanation on session timeout Chapter 6 Kernel Configurations 3. 1/2/2004: Revision after collecting feedback Chapter 2 Application Server Guidelines Updated the current website location of the Red Paper and script Increase Recycle Count value Added explanation on PSAPPSRV instance Chapter 3 Web Server Guidelines Updated Execute Thread Count discussion Added Jolt Request timing monitoring tool Added WebSphere Resource Analyzer information Chapter 5 Additional Guidelines Updated discussion about Compression Modified file descriptor limit for HP-UX Added proc parameters for Tru64

Copyright PeopleSoft Corporation 2004. All rights reserved.

38

You might also like