Professional Documents
Culture Documents
Including: Application Server Guidelines Web Server Guidelines Web Browser Configurations Additional Configurations Kernel Configurations
. 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
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
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
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.
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.
2/3/2004
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
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.
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.
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.
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
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 ;-----------------------------------------------------------------------
11
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\
12
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.
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
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.
14
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.
16
2/3/2004
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.)
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.
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.
18
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.
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
19
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>
20
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.
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.
Restart the application server. Start the Resource Analyzer: 1. 2. Go to the %WAS_HOME%\bin directory. Enter the command: ra hostname 900 AES.
21
2/3/2004
22
2/3/2004
NETSCAPE BROWSER
Here is the recommended configuration: Edit->Preferences->Advanced->Cache->Once per session
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
24
2/3/2004
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))
25
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.
26
2/3/2004
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.
For NT
Use the registry editor, regedit, and create a REG_DWORD named TcpTimedWaitDelay under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters.
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
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.
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.
28
2/3/2004
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
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
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
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
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.
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.
32
2/3/2004
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
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
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
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.
36
2/3/2004
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.
37
2/3/2004
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
38