Professional Documents
Culture Documents
People Tools Performance Guidelines White Paper
People Tools Performance Guidelines White Paper
Table of Contents
TABLE OF CONTENTS ............................................................................................................................................................. 2 CHAPTER 1 - INTRODUCTION .............................................................................................................................................. 6 Structure of this white Paper Related Materials 6 6
CHAPTER 2 - APPLICATION SERVER GUIDELINES ...................................................................................................... 8 Application Server Memory Guidelines 8 Determining PeopleSoft AppServer Memory Usage Under NT................................................................................................. 8 Determining If Excessive Memory Swapping Happens Under NT ............................................................................................ 9 Determining Memory Usage on UNIX ...................................................................................................................................... 9 Determining If Excessive Memory Swapping Occurs Under UNIX ........................................................................................ 10 Application Server Recycle Count 10 Background .............................................................................................................................................................................. 10 Recommendation ...................................................................................................................................................................... 10 Application Server Dynamic Recycle (PeopleTools 8.48 and Later) Shared Cache for Application Server Preload Cache (PeopleTools 8.48 and Later) PSAPPSRV Instances Use Parallel Boot Set Application Server JVM Options Confirm That the Required Bea Tuxedo Version and Minimum Rolling Patch Are Installed 11 11 13 13 14 14 14
CHAPTER 3 - WEB SERVER GUIDELINES ....................................................................................................................... 15 Confirm That the Required Web Server Version, Service Pack, and JRE Version Are Installed Use Jolt Session Pooling (PeopleTools 8.48 and Later) Use Strict Failover and Weighted Load-Balancing (PeopleTools 8.48 and Later) 15 15 15
Oracle Application Server (Oracle AS) 16 Set JVM Heap Size to 256MB or Higher ................................................................................................................................. 16 Capture JOLT Request Timing Traces ..................................................................................................................................... 16 Modify Apache KeepAlive Setting .......................................................................................................................................... 16 Modify ThreadsPerChild and Oc4jCacheSize .......................................................................................................................... 17 Disable HTTP Request Logging in mod_oc4j ......................................................................................................................... 17 Generate Heap Dumps on OutOfMemoryError ........................................................................................................................ 17 WebLogic 17 Log level Setting (PeopleTools 8.49 and Later) ....................................................................................................................... 18 Confirm That the Posix Performance Pack is Loaded .............................................................................................................. 18 Set Thread Count ...................................................................................................................................................................... 19 Confirm JRE Version ............................................................................................................................................................... 19 Set JVM Heap Size to 256MB or Higher ................................................................................................................................. 19
PeopleTools Performance Guidelines White Paper 9/10/2010 Set OS File Descriptor to 100*ThreadCount ............................................................................................................................ 19 Lower OS TCP/IP Cleanup/Timeout Settings .......................................................................................................................... 20 Monitor JVM Garbage Collection ............................................................................................................................................ 20 Disable Servlet Reload ............................................................................................................................................................. 20 Capture JOLT Request Timing Traces ..................................................................................................................................... 21 WebSphere 21 Log Level Setting (PeopleTools 8.49 and Later) ..................................................................................................................... 21 Ensure That JIT is Enabled and Class Verification is Skipped ................................................................................................ 22 Setup and Configuration ........................................................................................................................................................... 22 Set Thread Count ...................................................................................................................................................................... 22 Set JVM Heap Size to 256MB or Higher and Monitor JVM Garbage Collection ................................................................... 22 Other JVM Options .................................................................................................................................................................. 23 Disable Servlet Reload ............................................................................................................................................................. 23 Capture JOLT Request Timing Trace ...................................................................................................................................... 24 Using Resource Analyzer ......................................................................................................................................................... 25 CHAPTER 4 - WEB BROWSER CONFIGURATION ......................................................................................................... 26 Microsoft Internet Explorer ...................................................................................................................................................... 26 Netscape Browser ..................................................................................................................................................................... 26 HTTP 1.1 Compliant Web Browser ......................................................................................................................................... 26 CHAPTER 5 - ADDITIONAL CONFIGURATIONS............................................................................................................ 28 Browser Compression Caching Navigation Pages Caching HTTP KeepAlive 28 28 29 30
Reducing TCP Wait Time 30 For Windows NT ...................................................................................................................................................................... 30 For AIX .................................................................................................................................................................................... 30 For HP/UX 11 or Solaris 2.8 and Later .................................................................................................................................... 31 For Solaris Prior to 2.8 ............................................................................................................................................................. 31 AIX Thread Model Timeout Settings 31 31
CHAPTER 6 - INTEGRATION BROKER ............................................................................................................................ 34 Configure PSBRKHND Message Broker Handler Optimize Message Queue Versus Message Consumption Use of Message Segments for Oracle Delivered Full Sync Service Operations Optimize One Message Versus Multiple Messages per Queue 34 34 34 35
Tuning PSADMIN Parameters for Asynchronous Messaging 35 DISPATCHER Parameters....................................................................................................................................................... 35 PSPUBDSP only ...................................................................................................................................................................... 36 HANDLER Parameters ............................................................................................................................................................ 36 PSPUBHND only ..................................................................................................................................................................... 36 Tuning PSADMIN Parameters for Synchronous Messaging Configure Dedicated Message Servers for High Volume Asynchronous Messaging Configure Dedicated Multiple Domains for High-Volume Asynchronous Messaging 36 37 37
9/10/2010
Application Guidelines for Asynch Messaging 38 Application Guidelines for Sync Messaging ............................................................................................................................ 38 Configure Load Balance Interval (PeopleTools 8.48 and Later) Master/Slave Reducing Maximum App Message Size MultiThreaded Integration Broker (PeopleTools 8.46 and Later) Scan Time Setting for App Messaging PUBSUB Error And App Server Log File Growing 39 39 39 39 40 40
CHAPTER 7 - OPERATING SYSTEM SETTINGS ............................................................................................................. 41 For Linux 41 TCP_WAIT .............................................................................................................................................................................. 41 For Solaris For HP-UX For Tru64 41 42 42
CHAPTER 8 - CALL TELEPHONY INTERFACE (CTI) ................................................................................................... 44 RENServer Parameters (psrenconfig.txt) PSMCAPI Parameters (Renclient.Properties) PSMCAPI Java Options (StartServer.bat) 44 44 45
CHAPTER 9 - PSAE AND PSAESRV .................................................................................................................................... 46 CHAPTER 10 - REPORTING TOOLS .................................................................................................................................. 47 XMLPublisher (PeopleTools 8.48 and Later) Business Objects Enterprise (PeopleTools 8.48 and Later) 47 47
CHAPTER 11 - MONITORING TOOLS ............................................................................................................................... 48 PeopleSoft Ping ........................................................................................................................................................................ 48 psadmin .................................................................................................................................................................................... 48 PeopleSoft Performance Monitor ............................................................................................................................................. 48 CHAPTER 12 - VERSION 8.50 GUI ENHANCEMENTS.................................................................................................... 49 Version 8.50 Enhancements ..................................................................................................................................................... 49 Autocomplete (aka Type Ahead) .............................................................................................................................................. 49 Swan Look and Feel ................................................................................................................................................................. 49 Partial Page Refresh (aka Ajax Updates) ................................................................................................................................. 49 Modal Windows ....................................................................................................................................................................... 49 Scrollable Grids / Grids Zoom ................................................................................................................................................. 50 Mouse Over Pages .................................................................................................................................................................... 50 Deferred Mode vs. Interactive Mode........................................................................................................................................ 50 CHAPTER 13 - QUERY ACCESS SERVICE (QAS) ............................................................................................................ 51 QAS .......................................................................................................................................................................................... 51 Synchronous Query Execution ................................................................................................................................................. 51
PeopleTools Performance Guidelines White Paper 9/10/2010 Asynchronous Query Execution ............................................................................................................................................... 51 Sync/Poll Query Execution ...................................................................................................................................................... 52 Performance Considerations ..................................................................................................................................................... 52 Configuration Recommendations ............................................................................................................................................. 53 APPENDIX B REVISION HISTORY ................................................................................................................................... 54 Authors ..................................................................................................................................................................................... 54 Reviewers ................................................................................................................................................................................. 54 Revision History ....................................................................................................................................................................... 54
Chapter 1 - Introduction
This white paper is a practical guide for technical users, installers, system administrators, and programmers who implement, maintain, or develop applications for Oracles PeopleSoft Enterprise Applications. In this white paper, we provide guidelines on how to diagnose a PeopleSoft Online Transaction environment, including PeopleSoft Internet Architecture and Portal configuration. This document does not cover configuration of batch processes. Much of the information contained in this document originated within the PeopleSoft Global Support Center and is therefore based on "real-life" problems encountered in the field. Although this document does not address every conceivable problem that you could encounter with Tuxedo, the PeopleSoft Application Server, or your web server, the issues that appear here are the problems that prove to be the most common or troublesome.
RELATED MATERIALS
This white paper is not a general introduction to environment tuning, and we assume that our readers are experienced IT professionals with a good understanding of PeopleSoft Internet Architecture. To take full advantage of the information covered in this document, we recommend that you have a basic understanding of system administration, basic Internet architecture, relational database concepts/SQL, and how to use PeopleSoft applications. This document is not intended to replace the documentation delivered with the PeopleTools 8 or 8.4x PeopleBooks. To ensure that you have a well-rounded understanding of our PeopleSoft Internet Architecture technology, we recommend that before you read this document, you read information related to PeopleSoft Internet Architecture that is found in the PeopleTools PeopleBooks. Please note that much of the information in this document eventually gets incorporated into subsequent versions of the PeopleBooks. Many of the fundamental concepts related to PeopleSoft Internet Architecture are discussed in the following PeopleSoft PeopleBooks: PeopleSoft Internet Architecture Administration (PeopleTools|Administration Tools|PeopleSoft Internet Architecture Administration) Application Designer (Development Tools|Application Designer) Integration Broker (Integration Tools|Application Messaging) PeopleCode (Development Tools|PeopleCode Reference) PeopleSoft Installation and Administration PeopleSoft Hardware and Software Requirements
PeopleTools Performance Guidelines White Paper 9/10/2010 Additionally, we recommend that you to read documentation on Oracle Application Server, BEA Weblogic/Tuxedo, and IBM Websphere. See your PeopleSoft Installation and Administration PeopleBooks for directions on accessing the Oracle, BEA, and IBM documentation. This white paper has not been submitted for any formal PeopleSoft testing process and has not undergone rigorous review. The material here is published as is. Oracle assumes no responsibility for its accuracy or completeness. The use of this information or the implementation of any of these techniques is a customer responsibility and depends upon the customer's ability to evaluate and integrate these techniques into their operational environments.
9/10/2010
d) Run the command pq. The # Queued column displays the queue length for that application server process, 2. Follow this guideline for the memory footprint for the PSAPPSRV: CRM and HRMS use about 100-150 MB per application server process (CRM gets 50 users per process; HRMS gets less). Supply Chain uses 300-500 MB per process (you get about 10-20 users per process). Financials uses 150-300 MB per process (you get about 20-30 users per process). So, for example, if you have 1GB of memory available for a financials application server, boot no more than four PSAPPSRV processes. 3. Ensure that you include all test, development, and production domains on a computer in your calculation. A common problem is having four large domains on one computer with insufficient memory. 4. Check your memory utilization on the application server when you experience performance problems. Check for swapping by using the memory monitoring procedures outlined in the following sections. 5. If you are swapping, either add more memory or reduce the number of domains or PSAPPSRV processes on the computer.
PeopleTools Performance Guidelines White Paper 9/10/2010 PeopleSoft process names begin with ps. 2. Start TaskManager and select View from the menu bar, and then select Select Columns. Pick the Memory Usage and Virtual Memory Size columns. 3. Sort the process by name, and the two memory columns will tell you approximately the amount of memory that each PeopleSoft process is using. Memory Usage is not the entire memory consumption of the process, but only the amount of physical RAM that the process is using. However, with NT, an application may be using much more Virtual Memory (that is, the paging file) than physical memory, so if you're gauging memory at all, you must select both of these fields. The Memory Usage columns includes the shared libraries loaded into each process; therefore, if you add up all the processes, you will be double counting the shared libraries portion. Because PeopleSoft shares a lot of the common libraries, the summation of all PeopleSoft processes is a quick estimator, not an absolute measurement of memory usage. The total Memory Usage and the VM Size of the combined PeopleSoft processes should not be greater than 70 percent of the real memory of the server.
9/10/2010 198.098MB
For all PSAPPSRV Processes: Resident memory size is: 108.453MB CPU for PS Processes: 9% Virtual memory size is: 106.559 MB Resident memory refers to the real physical memory currently required by the process for its operation. Virtual memory refers to the process virtual address size, which includes memory that has been paged out to the physical disk. If the virtual memory continues to increase, you should lower the RecycleCount of the AppServer. The output of ps_chk_domain.sh divides the portion of PSAPPSRV processes from the entire domain so that the end-user (or system administrator) can get a better understanding with the distribution of the memory resources. We recommend that the total resident memory for the entire PS Processes not exceed 70 percent of the total real memory available on the server.
Background
The AppServer processes use physical runtime memory to cache Panel objects in order to speed up user response time, instead of fetching the Panel objects from the database server every time. However, as the number of requests serviced by the AppServer increases, the amount of physical memory occupied by the AppServer processes also increases. When the amount of memory occupied by the AppServer becomes too large (relative to the real memory available at the time), paging to a file system occurs and impacts user experience. In order to effectively manage the memory footprint of the AppServer, keep the Recycle Count at a realistic level. When the AppServer reaches the specified Recycle Count value, the AppServer terminates and restarts itself. When the AppServer terminates, the occupied memory is released.
Recommendation
We recommend that you set the recycle count to 5,000. Adjust the recycle count so that no memory swapping is introduced because of a high recycle count value. (See the previous session for information how to determine memory swapping.)
10
PeopleTools Performance Guidelines White Paper 9/10/2010 To minimize the cost of recaching the AppServer, you must enable File Cache on the AppServer. To enable Server Caching, set the EnableServerCaching=2 (the default value is 2). ----------------------------------------------------------------------; EnableServerCaching ; 0 Server File caching disabled ; 1 Server File caching limited to most used classes ; 2 Server File caching for all types EnableServerCaching=2 -----------------------------------------------------------------------
To run the LOADCACHE program: 1. Ensure that the database that the application server runs against produces clean SYSAUDIT runs. If SYSAUDIT is not clean, the LOADCACHE program may fail. 2. Ensure that the user who is running the program has defined the Load Application Server Cache component to the Permission List in User Profile. 11
9/10/2010
Find or add the Utilities page for the users permission list and add the Load Application Server Cache component. 3. (For PeopleTools 8.42 and earlier only) Check your psprcs.cfg file (Process Scheduler configuration file) and set it appropriately. psprcs.cfg is where you specify the type of objects to cache using the EnableServerCaching parameter. For PeopleTools 8.4x, set it to 2. The LOADCACHE reads this setting and caches metadata according to the value specified in the Process Scheduler configuration. However, do not enable shared caching for Process Scheduler. Ensure that ServerCacheMode equals 0. [Cache Settings] ;============================================ ; Settings for Tools that use Cache ;============================================ CacheBaseDir=%PS_SERVDIR%\CACHE ;----------------------------------------------------------------------; EnableServerCaching ;0 Server File caching disabled ;1 Server File caching limited to most used classes ;2 Server File caching for all types EnableServerCaching=2 ;----------------------------------------------------------------------; CacheBaseDir = the base cache directory ;CacheBaseDir=%PS_SERVDIR%\CACHE ;----------------------------------------------------------------------; ServerCacheMode ;0 One cache directory per App Server Process ;1 Shared Cache ServerCacheMode=0 3. 4. (For PeopleTools 8.40 and later) Select PeopleTools, Utilities, Administration, Load Application Server Cache. Enter the appropriate Run Control ID. You may have to add a new value here. The Load Application Server Cache page appears. 5. 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\ 6. Select the correct process scheduler and click Run. Navigate to PeopleTools>Process Monitor. Wait for the process to become Success. The first time that you run the process, it may take 4 to 5 hours. Ensure that the Run Location is set to Server. 7. 8. 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
Copyright Oracle. All rights reserved.
12
PeopleTools Performance Guidelines White Paper 9/10/2010 ;----------------------------------------------------------------------; CacheBaseDir = the base cache directory ;CacheBaseDir=%PS_SERVDIR%\CACHE ;----------------------------------------------------------------------; ServerCacheMode ;0 One cache directory per App Server Process ;1 Shared Cache ServerCacheMode=1 9. Create the <PS_HOME>\<DomainName>\cache\share directory for the appropriate domain.
10. 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 11. When you see a bunch of files with *.dat and *.key extensions inside the stage directory, copy the contents of the stage directory into the share directory on your appserver domain. 12. Reboot your application server domain. Note: For shared cache users: shared cache is intended to be used in a disciplined environment. If you use shared cache, do not make any application changes that will affect the Meta Data objects, such as the Panel definition, Menu structure, or Permission List. The reason: once you chose to use shared cache, the cache files are all marked as read only. The AppServer processes cannot update the cache files for any delta, and each access to the changed Meta Data will result in a costly database access. The preferred way to use LoadCache files is to copy the entire cache file set to the individual AppServer process (that is, seeding the cache directory with the prebuilt LoadCache fileset). Multiple copies of the cache file in each directory consume disk space, but enable the process to update the cache file content. This flexibility enables you to make application changes but does not affect performance.
PSAPPSRV INSTANCES
Keep the number of PSAPPSRV instances low. PSAPPSRV must cache PeopleSoft meta-objects in order to be effective. Too many PSAPPSRV process instances make it difficult to fully cache all of them. Too many process instances become even more troublesome in a Win2000/NT Tuxedo domain because the Bulletin Board process tries to use the same PSAPPSRV process ID (not using the round robin method as in UNIX).
13
9/10/2010
We recommend starting with 1.5 to 3 PSAPPSRV processes per CPU. If the application server machine is 100 percent utilized under load, reduce the number of PSAPPSRV processes until there is some idle CPU. If as a result, there is significant queuing, then you may need additional application server hardware. In general, it is best to allow a small amount of queuing during peak working hours. If the app server machine is more than 80 percent loaded, then we do not recommend spawning an extra PSAPPSRV instance to handle high-volume workload. Every time that a new PSAPPSRV process starts, the process must establish its cache, which takes time, CPU, and memory. Use an appropriate "min" setting to indicate how many PSAPPSRV processes are required for proper throughput. However, if the app server machine has sufficient headroom for better utilization, then you can use spawning to avoid excessive queuing. To disable spawning, use the same value in the Min Instances and Max Instances fields.
CONFIRM THAT THE REQUIRED BEA TUXEDO VERSION AND MINIMUM ROLLING PATCH ARE INSTALLED
Confirm that the required Bea Tuxedo version and the minimum rolling patch are installed specific to the PeopleTools release and operating system from Certifications section of My Oracle Support. You can verify the installed Bea Tuxedo rolling patch from the following rolling patch level file: <TUXDIR>\udataobj\patchlev
14
Chapter 3 - Web Server Guidelines CONFIRM THAT THE REQUIRED WEB SERVER VERSION, SERVICE PACK, AND JRE VERSION ARE INSTALLED
Confirm that the required web server version, service pack, and JRE version are installed specific to the PeopleTools release and operating system from the Certifications section of My Oracle Support.
15
9/10/2010
16
PeopleTools Performance Guidelines White Paper 9/10/2010 from 15 to 30 will negatively impact performance because there will be fewer available connections to service the requests. You should change this setting only if you see excessive CPU consumption of the OHS process (look for apache.exe in your Task Manager in Windows or do ps ef | grep httpd in UNIX) and you expect a stable number of users making requests at interval to be longer than the default setting of 15 seconds. When you increase KeepAlive, you may need to increase MaxClients or ThreadsPerChild (see the next section) to ensure incoming requests are not starving for connections.
WEBLOGIC
17
9/10/2010
18
Note: For Linux, it is necessary to set an environmental variable to work around a JRE bug. $ export J2SE_PREEMPTCLOSE=1 The rationale behind this setting is that the current Linux is still using the old UNIX network/thread semantics, and the close() is not preemptive as in Solaris and AIX. This setting applies to JRE1.2.2, 1.3 and 1.3.1.
19
9/10/2010
In Windows NT/2000, there is not an explicit parameter for the number of file descriptors. The parameter is implicitly limited by hardware resources (mainly system memory).
20
PeopleTools Performance Guidelines White Paper 9/10/2010 In a production environment, the servlets are not modified. Therefore, checking and reloading only incurs unnecessary work. Thus, you should set ServletReloadCheckSecs to 1 for each of the components. (If the field is not present, the value defaults to 0 always reload, which is undesirable. If this is the case, introduce the field with a value of 1.)
WEBSPHERE
Log Level Setting (PeopleTools 8.49 and Later)
In Websphere 6.1.0.3, log detail level has been set as Info by default. This setting produces too much logging data to logfile, which degrades performance in internal performance tests. We recommend changing the log detail level from *=info to *= severe to improve the performance up to 20 percent. Log in to the Websphere admin console and navigate to Troubleshooting> Logs&Trace> server1>Change Log Detail Levels. Set the value to *=severe. We recommend that you disable the diagnostic trace log, which reduces the amount of logs written in webserver log files. Log in to the Websphere admin console and navigate to Troubleshooting > Logs&Trace > server1 > Diagnostic trace. Clear the Enable log check box.
21
9/10/2010
Set JVM Heap Size to 256MB or Higher and Monitor JVM Garbage Collection
(Refer to the WebLogic section on how to decide the JVM heap size.)
22
PeopleTools Performance Guidelines White Paper 9/10/2010 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}/ins talledApps/peoplesoft/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 you can also turn on verbosegc here (verboseModeGarbageCollection). With IBM Websphere 5, you can go to the administration console (http://:9090/admin/) to change settings. Log in with a blank user ID. On the left Navigation, select Servers -> Application Servers. Select your server name (default is server1). Click Process Definition under Additional Properties. Click Java Virtual Machine under additional Properties. Here you can change all the parameters where you need verbosegc and so on.
23
9/10/2010
xmi:id="WebAppExtension_1" reloadInterval="0" reloadingEnabled="false" fileServingEnabled="true" directoryBrowsingEnabled="true" serveServletsByClassnameEnabled="false"> <defaultErrorPage xsi:nil="true"/> <additionalClassPath xsi:nil="true"/> <webApp href="WEB-INF/web.xml#WebApp_1"/> <extendedServlets xmi:id="ServletExtension_1"> <extendedServlet href="WEB-INF/web.xml#Servlet_1"/> </extendedServlets> </webappext:WebAppExtension> Also copy the file ibm-web-bnd.xmi from the PORTAL/WEB-INF directory.) Moreover, %WAS_HOME%/<peoplesoft web domain>/META-INF/ibm-application-ext-xmi should look like this (with the reloadInterval line deleted): <applicationext:ApplicationExtension xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:applicationext="applicationext.xmi" xmlns:application="application.xmi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmi:id="Application_ID_Ext" reloadInterval="0"> <!-- DELETE THIS LINE <reloadInterval xsi:nil="true"/>DELETE THIS LINE --> <application href="META-INF/application.xml#Application_ID"/> </applicationext:ApplicationExtension> Refer to the same topic in WebLogic for further information.
24
25
9/10/2010
The following web browser settings are the recommended configurations. These configurations are usually the default settings of the respective browsers. Verify these configurations to ensure correctness.
Netscape Browser
Here is the configuration recipe: Edit->Preferences->Advanced->Cache->Once per session
Currently the following browsers are HTTP 1.1 compliant: Internet Explorer version 6 onwoards
26
PeopleTools Performance Guidelines White Paper 9/10/2010 Firefox 1.5 onwards Mozilla 1.7 Netscape 7.2, 8.1 Safari 2.0.4
27
9/10/2010
CACHING
Caching improves system performance by reducing service requests from the web server to the application server. For PeopleTools 8.44 and later, cache settings are configured via PeopleSoft Internet Architecture. Go to PeopleTools->Web Profile->Web Profile Configuration, select the Web Profile that you are using, and then select the Caching tab. If Cache Portal Objects is selected, the portal servlet (psp) will cache the following objects in web server memory: Portal Registry Node (Remote and Local) Content Reference Template (Static only)
If Cache Portal Objects is selected, object changes won't take effect until the objects become stale and are refreshed (see Cache Stale Interval setting below) or you restart the web server. The check box is selected by default
28
PeopleTools Performance Guidelines White Paper 9/10/2010 The Cache Stale Interval is the amount of time, in seconds, before portal cache is considered stale and updated with the latest copy from the application server. In other words, this is the amount of time before changes to cached objects take effect. This setting applies to the same objects as Cache Portal Objects. Here is the default setting: 86200 (24 hours). The portal automatically throws away all cache entries in memory after the number of requests specified in Cache Purge All Hit Count. This setting applies for all websites on this web server. Setting this value to -1 disables hitcount purging. The default setting is 1000. The portal caches proxied javascripts to improve performance if the Cache Proxied JavaScripts check box is selected. The check box is selected by default. Target content is cached in memory when the TargetContent tag in the template specifies that the target should be cached. Only static content should appear in a template with a cached target tag. The TargetContent tag should look like this: <TargetContent Name="TransactionContent"><Cache Scope="application" Interval="1200" >dummy</Cache></TargetContent> You can cache pagelets using the same mechanism. The Cache Target Content check box should be selected to allow caching of target content. Clearing this check box disables all target content caching in the portal servlet, even if the target tag specifies cached content. This check box is selected by default. Homepages can also be cached on each user's browser. This means that the browser does not access the web server after the homepage is initially retrieved. You can turn this feature on or off, and also adjust the specific time interval that must pass before the web server is accessed again to get a "fresh" homepage. In any case, if a user clicks the browser's Refresh button, the homepage is accessed from the web server again, overwriting the homepage cached on the browser. Caching the homepage is beneficial in either a production or development environment. We recommend that you turn on homepage cache. The following table lists the default values of the parameters in PeopleSoft Internet Architecture: Cache-Related Properties and Default Values Cache Homepage=selected Homepage Stale Interval=1200
Homepage Stale Interval is measured in seconds. Note: The Browsers section specifies which web browser that you can use with homepage caching. Verify that your choice of browser is enabled for caching.
29
9/10/2010
Go to PeopleTools-> Personalization->.Personalization Options. Enter PPTL (PeopleTools) as the Option Category level value. Select the Format tab and then select Set Option Default Value in the METAXP row. Key in the appropriate value and click OK. Then click save when being brought back to the previous screen. Note that a change to METAXP is picked up by the application server immediately; however, because the users browsers already have cache control set by the previous value of METAXP, you must delete browser cache for the new METAXP to take effect. Users can override the METAXP value on their individual browser sessions. After logging on, go to My Personalizations, then click the Personalize Option button for General Options. Change the METAXP value by entering a new value for Time page held in cache and then click OK. Do not use navigation caching during development time because any newly added menus will not be reflected in the cache. Use navigation cache only in production systems.
HTTP KEEPALIVE
HTTP KeepAlive is intended to maintain a persistent socket connection between the web browser and the web server so that no new connections are required when the HTML pages refer to other HTML objects. However, keeping the socket connection persistent occupies a socket pair between the browser and web server. When the KeepAlive timing is set too long, the following problems occur: The web server must manage many idle connections. Then number of new connections available is reduced.
We generally advise that those with PeopleTools 8.4x turn on KeepAlive. KeepAlive is the default for Oracle Application Server, WebLogic, and WebSphere.
For Windows NT
Use the registry editor, regedit, and create a REG_DWORD named TcpTimedWaitDelay under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters. Set the value to 60 secs (seconds).
For AIX
To see the current TCP_TIMEWAIT value, run the following command: /usr/sbin/no a | grep tcp_timewait To set the TCP_TIMEWAIT values to 15 seconds, run the following command: /usr/sbin/no o tcp_timewait =1 The tcp_timewait option is used to configure how long connections are kept in the timewait state. It is given in 15-second intervals, and the default is 1. Use the default or change the value to 2 for slower networks.
Copyright Oracle. All rights reserved.
30
PeopleTools Performance Guidelines White Paper 9/10/2010 Note: Be careful when you use no command, which performs no range checks and instead accepts all values for the variables. If used incorrectly, the no command can cause your system to become inoperable. The no command operates only on the currently running kernel. The command must be run again after each startup or after the network has been configured.
For C Shell user, place the following lines in the .cshrc file: set set set set set set AIXTHREAD_SCOPE = S AIXTHREAD_MNRATIO = 1:1 AIXTHREAD_COND_DEBUG = OFF AIXTHREAD_GUARDPAGES = 4 AIXTHREAD_MUTEX_DEBUG = OFF AIXTHREAD_RWLOCK_DEBUG = OFF
TIMEOUT SETTINGS
There are in general three types of timeouts:
31
9/10/2010
Timeout during a PeopleSoft Internet Architecture transaction (intratransactional): When the timeout expires, the transaction fails and must be resubmitted. Timeout between PeopleSoft Internet Architecture transaction (intertransactional): When the timeout expires, the user has been idling for too long, and the resources associated with the user are freed. You must relogin to re-establish the state. Timeout that "reserves" a resource until the expiration time before putting it back into the pool for recycling. (for example, tcp_timewait).
Note that for the intratransactional timeouts, their values should be staged. In other words, the end-to-end timeout value should always be greater than that of its intermediate legs. With this in mind, lets review our timeout values, from bottom up: Appserver: Service Timeout = x sec (default 300) (in psappsrv.cfg) Type=intratransaction, which includes the time it takes at the DB server. According to the PIA Answer Book:
Service Timeout Specifies the number of seconds a PSAPPSRV waits for a service request, such as MgrGetObj or PprLoad to complete, before timing out. Service Timeouts are recorded in the TUXLOG and APPSRV.LOG. In the event of a timeout, PSSAPSRV terminates itself and Tuxedo automatically restarts this process. In other words, it has to be large enough to accommodate the longest acceptable requests and queries. It is recommended to set x=1200 (20 minutes).
PeopleSoft Internet Architecture: tuxedo_send_timeout = w sec (default 50) ; tuexdo_receive_timeout = x sec (default 600) (in pstools.properties) The receive timeout is also intratransactional, and it has to be bigger than appserver service timeout. The receive timeout indicates the maximum number of seconds that the servlet waits for a response from the application server. If you increase your application server service timeouts, such as the Service Timeout setting for PSAPPSRV, then increase the tuxedo_receive_timeout parameter to be greater than the Service Timeout values that appear in the PSAPPSRV.CFG configuration file on the application server.
Servlet: sessionTimeout = x sec (default 1200) (in configuration.properties) This is intertransactional, as one has to relogin when the servlet expires (technically this is a security setting). The meta refresh tag is in seconds and should be less than or equal to the session.timeout for the servlet. For WebLogic 6.1, the meta refresh tag should be less than or equal to <session-timeout> as discussed in the following section.
JOLT: Client Cleanup Timeout = x min (default 60) (in psappsrv.cfg) This is intertransactional. See description (default is 60, but in most cases this can be reduced to 10 to conserve resources): Client Cleanup Timeout: Specifies the amount of time, in minutes, that a client connection can remain idle (no work requested) before Tuxedo terminates a client connection. Client disconnects are transparent to a client. To reconnect, users must only click the mouse.
Webserver session timeout: <session-config><session-timeout>x</session-timeout></session-config> (in <webserver home dir>/<peoplesoft web domain>/PORTAL/WEB-INF/web.xml)
32
PeopleTools Performance Guidelines White Paper 9/10/2010 This is intertransactional and specifies the number of minutes (WebLogic) to wait before invalidating an unused session. Note that setting this value too high ties up web server resources, especially when users close their browsers instead of logging out. Setting it to be the same as (or a bit higher than) the JOLT cleanup timeout is generally a good idea. HTTP timeout: Apache: Timeout = x sec (in httpd.conf) HTTP timeout, unfortunately, serves as both intertransactional and intratransactional in different scenarios, so it may or may not be higher than the rest of the timeouts. This directive defines the amount of time Apache will wait on three occasions: 1. 2. 3. 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. The amount of time between acknowledgements on transmissions of TCP packets in responses.
A common problem: Sometimes in PeopleSoft Internet Architecture, time out error occurs on PeopleSoft pages even when people are using the page. Solution: 1. Increase the timeout values in servlet session timeout and webserver session timeout. In configuration.properties: sessionTimeout = 3600 sec In web.xml: <session-config> <session-timeout>60</session-timeout> </session-config> 2. Increase values in configuration.properties in Apache Group->Apache\htdocs\PeopleSoft. Set "meta-tag" session timeout to 3600 (which enables users to use the page for 60 minutes with no time out errors). 3. Increase the values in pstools.properties if long queries are common: Set tuxedo_receive_timeout to 1500.
33
9/10/2010
USE OF MESSAGE SEGMENTS FOR ORACLE DELIVERED FULL SYNC SERVICE OPERATIONS
Messages (service operations) should be designed to take full advantage of as much queue partitioning as possible. One area of concern is the Oracle-delivered full sync service operations. These particular service operations do not take advantage of partitioning due to the way that they currently have to chunk the content data and process the notifications. Integration Broker has come up with an alternative to this current chunking mechanism using message segments. Message segments provide a way to process and send large amounts of data (Gbytes) without impacting performance due to PeopleCode processing, or running out of memory. Message segments enable a single message to load with all the data segmented by any chunkable size desired. After one segment is populated based on a configuration parm, or overridden by PeopleCode, that segment is serialized to XML and inserted into the IB database queue compressed. The next segment is then available for processing. This type of loading continues until the message is completely loaded with all the desired data. The message can be sent either as one message (ordered segments) or multiple messages (unordered segments). The actual data is sent chunked by segments to the gateway and received by the target system. These segments should be complete stand-alone data structures. The message object is responsible for this memory management. The consumption of a segmented message in PeopleCode is straightforward. One segment at a time is
Copyright Oracle. All rights reserved.
34
PeopleTools Performance Guidelines White Paper 9/10/2010 decompressed and serialized into a rowset. After the data is inserted into the database, the rowset is destroyed, freeing up memory, and the next segment is then loaded. This process repeats for the number of segments in the message. Refer to IB PeopleBooks for Message PeopleCode APIs with respect to message segments.
DISPATCHER Parameters
Recycle Count: The dispatcher automatically recycles itself when this value is reached. By default, the recycle count is set to 0. This count is based on the number of Tuxedo requests. In general, you should not have to cycle the dispatcher. However, if a recycle count is used, it will affect performance because initialization will be performed which includes rebuilding all the inmemory queues for each active queue assigned to that dispatcher. Dispatch List Multiplier: This is a parameter used to throttle the number of requests sent to its associated handlers. The actual list is the number of associated handlers multiplied by this value. The current default is set to 10. This value was obtained by many performance tests. You should not have to change this value because it scales well. Scan Interval: This is the interval that the dispatcher runs its on-idle processing. The current value is set to 15, which is fine if Pub/Sub is running in the same domain as the PeopleSoft Internet Architecture appservers. However, if the Pub/Sub servers are stand-alone, this value should be set to 1, as this is the only mechanism to initially poll the database queue for work. Dispatcher Queue Max Queue Size: This value is the maximum number of items (messages) per queue that the dispatcher retains in memory. The current default is set to 1000, which was obtained after many performance tests. You should not have to change this value because it scales well. Memory Queue Refresh Rate: This is the number of actual dispatches that the dispatcher will automatically rebuild in its inmemory queue for a particular queue. The queues should not get corrupted; however, the current default value of 1000 is set at such a high level that it does not impact performance and is recommended based on performance tests. You should not have to change this value because it scales well.
35
9/10/2010
Restart Period: This is the time that the dispatcher attempts to redispatch messages that are still in the START status. This value can potentially have a big impact on overall performance of the messaging system. When the dispatcher dispatches a request, the system sets the status of the message to START. The Tuxedo request is queued, and the next available handler will attempt to process this request and set the status to WORK. However, when the message system is under configured (that is, there are not enough handlers to process all the requests), the request stays queued. The dispatcher again sends the request after the restart period has elapsed. This potentially leads to a lot of redundant requests that the available handlers must cycle through. This leads to the Tuxedo queue overflowing and potentially losing requests, request that must be picked up when the restart period is reached. However, you do not want to set this value too high, as messages would not be restarted in case of a handler crash. A good guideline is to use the number of incoming requests per second divided by the number of associated handlers, multiplied by the average processing time per second. Use this formula: ((Incoming requests per second)/ (# of associated handlers)) * (average processing time per request)
PSPUBDSP only
Ping Rate: This parameteralong with the scan intervaldetermines how often a node that is in the PSNODESDOWN table should be pinged to see if it is in a valid state to send a request to. Part of the on-idle processing performs these ping requests. When there are a lot of nodes that are down due to improper configuration of routings on Service Operations, many CPU cycles are spent performing these pings. This value allows for a longer time between subsequent pings. Here is the algorithm used to determine the interval: Attempts * Ping Rate * Scan Interval) Maximum Ping Interval: This value is the maximum time between subsequent pings for a node that is in the PSNODESDOWN table. This value is in hours.
HANDLER Parameters
Min Instances and Max Instances: These values should always be the same. If the Min Instance is not the same as the Max Instance, then under load, the system has to wait for the process (the handler) to boot up and initialize before it can be used. It is better to boot all at one time, avoiding allocations during max load. Recycle Count: Because the handlers run IB Events that contain PeopleCode, memory leaks are likely. Therefore, you should have a high recycle count and monitor it to determine if it grows to an undesirable size. The recycle count by default is 20000; however, depending on the PeopleCode being run, you can set this value higher or lower. The problem with a recycle count on a handler is that with proper load balancing from Tuxedo, all associated handlers recycle at approximately the same time. If this becomes a problem, set the recycle count to 0 and create an automated script that will stagger the recycling of the handlers by using Tuxedo command line arguments to specify the specific handler. Max Retries: This value represents the number of times that the handler will attempt to process a message before the status is set to TIMEOUT. Therefore, if the PeopleCode being run causes a crash of the process, it will attempt to process it again. This value should be set to a low value5 or lowerto limit the amount of handler crashes for one specific bad message.
PSPUBHND only
Thread Pool Size: This value represents the number of concurrent threads that the handler can spawn for HTTP requests. Note that with performance benchmark testing in this area, with a thread count set to 5, one handler was able to replace three nonthreaded handlers. This is something to consider if memory resources are scarce.
36
PeopleTools Performance Guidelines White Paper 9/10/2010 These are the configurable PSADMIN parameters for synchronous messaging that can affect performance. This section discusses each of these parameters in detail and its impact on performance. Min Message Size For Compression: Size of message content data that will cause the Integration Broker to compress the data prior to posting to the Integration Gateway. In general, Sync messages should be as small as possible to improve response time. Third-parties should always use compression if possible. Thread Pool Size: This value represents the number of concurrent threads that one PSAPPSRV process can spawn for HTTP requests. The default is set to 5 based on performance benchmarks.
37
9/10/2010
add complications in debugging. Adding another domain takes up systems resources. If you are going to consume resources, then add handlers rather than a new domain. If you are trying to configure for failover, configure using IB failover.
2.
3. 4.
38
PeopleTools Performance Guidelines White Paper 9/10/2010 typically be used for remote queries, not for remote inserts/updates/deletes. If synch messaging is used for inserts/updates/deletes, SyncRequests do not share a transaction context with the requesting system. If a SyncRequest has been completed, and the client transaction rolls back, the SyncRequest will not be rolled back. (Publishes will be rolled back). Also, a component should not depend on the successful completion of a SyncRequest. If the remote system is down, the SyncRequest will fail. The requesting application should be prepared to deal with this by using exception logic, or should use the Asynch system. If the remote system is down, the Asynch system will retry. If you need to send data to multiple systems at the same time, use threaded sync requests or possibly Asynch messaging. The Asynch system is much more efficient at fanning out information to multiple target systems.
MASTER/SLAVE
When setting up a master/slave configuration using machines with different CPU processing power, use the more powerful machine as the master. If you use the slower machine as master, that machine may not keep up with the slave. As a result, the slaves would sit idle and throughput would not be maximized.
39
9/10/2010
40
FOR LINUX
The default settings and available tuning options vary from one Linux kernel version to the next, so information presented in this section may be incomplete. The correct settings also vary depending on factors such as available physical memory, number of processors, and PeopleTools component configuration. <h4 These settings can be found in the /etc/sysctl.conf file, which is loaded when the system boots. # raise max open fd limits fs.file-max = 65536 # use wider range for local ports, # setup all Tools components to use port numbers between 1024 and 10000 net.ipv4.ip_local_port_range = 10000 65000 # allow more/larger IPC message queues kernel.msgmni = 512 kernel.msgmax = 1048576 kernel.msgmnb = 1048576 # set IPC shared memory blocks, # these are system defaults, # except for shmall which is varies depending on physical memory kernel.shmmni = 4096 kernel.shmmax = 33554432 kernel.shmall = 1073741824 # adjust IPC semaphore settings kernel.sem = 250 256000 64 1024 After you change the sysctl.conf file, you can load the updated values from that file into your running system with sysctl -p.
TCP_WAIT
Unlike other systems, TCP_WAIT is not an adjustable parameter. For reliable TCP behavior, do not lower TCP_WAIT below 60 seconds on any system. In the Linux kernel, the parameter is hard coded at 60 seconds and requires a recompile to change. To prevent DOS attacks, the number of sockets that can be in a TCP_WAIT state is limited. The sysctl name is net.ipv4.tcp_max_tw_buckets and the default value is 180000. If you use this default, you must establish, process, and close more than 3000 sockets per second to see a problem.
FOR SOLARIS
MSGMAP=2048
41
PeopleTools Performance Guidelines White Paper MSGMAX=65536 MSGMNB=65536 MSGMNI=1024 MSGSEG=32767 MSGTQL=1024 SEMMAP=512 SEMMNI=512 SEMMNU=4096 SEMUME=10 SEMMNS=4096 SEMMSL=8
9/10/2010
FOR HP-UX
dbc_max_pct=10 dbc_min_pct=8 default_disk_ir=1 fs_async=1 max_thread_proc=2048 maxfiles=2048 maxfiles_lim=4096 maxssiz=200802304 (191.5 MB) maxswapchunks=2048 maxuprc=512 maxusers=2000 msgmap=2048 msgmax=65535 msgmnb=65535 msgmni=1024 msgseg=32767 msgtql=2046 semmap=512 semmni=512 semmns=4096 semmnu=4096
FOR TRU64
ipc: msg_max msg_mnb msg_mni msg_map msg_tql shm_max shm_min shm_mni shm_seg sem_mni sem_mnu sem_mns sem_msl sem_opm sem_ume sem_vmx sem_aem = = = = = = = = = = = = = = = = = 262144 262144 16384 20000 4096 4294967295 1 300 100 4096 1048 819200 1000 400 1048 32767 16384
42
PeopleTools Performance Guidelines White Paper 9/10/2010 ssm_threshold=8388608 num_of_sems = 1024 max_kernel_ports = 22487 inet: tcpnodelack = 0 tcbhashnum = 16 tcbhashsize = 8192 ipqmaxlen = 1024 ipqmaxlen = 2048 ipqs = 1 ipqs = 32 tcp_mssdflt = 1460 tcp_msl = 60 pmtu_enabled = 0 tcp_sendspace = 61440 tcp_recvspace = 61440 udp_ttl=60 vfs: bufcache = 1 fifo_do_adaptive = 0 socket: somaxconn = 65535 sominconn = 65535 proc: per_proc_data_size = 3221225472 (3072MB, or three-quarters of the value of perproc-address-space) per_proc_address_size = 4294967296 (4096MB) This is needed if you must compile large numbers of Cobol programs. Many applications, for example Oracle and the Tru64 Java Fast VM, require that you properly set per_proc_data_size. However, the per_proc_data_size should be less than the physical memory available on the system; otherwise, swapping will occur.
43
9/10/2010
How often (in sec) to look for and delete expired events. Default is 3600 (1 hour), which caused a steady increase in RENSERVER memory.
ns_param default_kn_expires reaper_interval 600 (Recommended)
Default to use if an event is received without a kn_expires header. Use "infinity" or something like "+3600" for 1 hour; must be at least "+5." Default is 3600 (1 hour), which caused a steady increase in RENSERVER memory.
ns_param permission_max_idle default_kn_expires "+10" (Recommended)
How long (in sec) the permission can stay in cache if the tunnel is closed. Default is 60, which increases the time the PSTOKEN of the agent is expired at the RENSERVER.
ns_param mtu_size permission_max_idle 300 (Recommended)
New parameter to pad the network TCP packets with additional data to reduce latency in TCP ACK packets.
ns_param mtu_size 1500 (Recommended)
Topic reaper interval in milliseconds. Default is 30000 (30 seconds), which keeps the session alive for an extended period of time.
interval_topic_reaper = 3000000 (Recommended) heartbeats_to_miss
New parameter specifies the number of heartbeats to miss before the session is set for deletion. Default is 2.
44
New parameter to pad the network TCP packets with additional data to reduce latency in TCP ACK packets.
mtu_size=1300 (Recommended)
Default is Xms256m Xmx512m. Increase to below recommended value to handle higher call rate (more than 10 cps).
-Xms512m -Xmx768m (Recommended)
45
9/10/2010
46
47
9/10/2010
psadmin
You can use psadmin to monitor Tuxedo queueing. You can use this information to determine the optimal number of PSAPPSRV processes. See the Application Server Guidelines section for more details.
48
Once cached on the browser, there are no more requests for these files.
Modal Windows
Modal Windows are used for a number of tasks including messages prompt look ups secondary pages 49
9/10/2010
To Achieve the look and feel of a floating modal window required the use of an HTML tag called an iFrame. An iFrame is a separate window within the main browser window or HTML page This enables the ability to display two HTML pages within the same browser window This iFrame can be resized and moved around within the browser window
For each page with a Modal, the browser makes an additional request to the appserver The additional request happens at page load time for the iFrame This iFrame infrastructure is reused for all the Modal lookups on the same page
We have attempted to minimize the affect of this additional request from a performance perspective, however it may be questioned during load testing. You will see your http requests increase to support this feature and as a result more Jolt requests and some increase in web server CPU time This additional requests may increase the webserver and Appserver CPU time accordingly The impact of this enhancement is dependent upon the actual test that is performed during load testing
50
QAS (Query Access Services) allows application developers to create web service-based applications that can retrieve data from PeopleSoft applications. QAS provides several web service operations. QAS utilizes the PeopleSoft Integration Broker framework to satisfy requests. When designing an application that will invoke QAS service operations, it is important to consider performance. In particular, there are three modes of query execution that each have particular performance characteristics: Synchronous Query Execution Asynchronous Query Execution Sync/Poll Query Execution
Note: Amount of data in the result set is determined by two factors: Number of rows of data Numbe of columns in each row
In general if you expect most queries to be simple in nature and result sets on the small size (e.g., hundreds of rows, not thousands of rows), then synchronous query execution may be an appropriate query execution mode. If you expect query complexity to be high and/or you expect that large result sets will be commonplace, or if response time is critical, then you may want to consider other modes of query execution.
51
9/10/2010
When an asynchronous query execution request is issued, the calling application process does not have to wait for the result set to be returned. When the result set is created, QAS will post to the calling application the result set. The calling application, of course, must be designed to be able to accept that post and process it accordingly.
The query result set resulting from an asynchronous query execution request is posted to the requesting application in one result post. For a large result set this means that the message posted to the calling application can become quite large. Thus, it is recommended that asynchronous query execution be used only when you expect query result sets to be small. Large result sets will take more time to convey in the network and take more time to process.
This mode of execution is best suited for returning large or small numbers of rows of data. It is the mode typically used by reporting applications accessing PeopleSoft data via QAS.
Performance Considerations
Which execution model to run will depend on the number of rows and columns returned in the response. Keep the following guidelines in mind: Synchronous execution is not recommended for large result sets. Response data that consists of large number of columns with fewer rows of data has a slower response than response data which consists of fewer columns and more rows, even though the response size may be smaller. Requesting a query be executed in synch/poll mode with block size = 0 or Max will result in all data in one block. This is probably not what you want to do. In sync/poll execution, the larger the response block, the fewer blocks are returned and total response time for all blocks is less, but the user has to wait longer for the response. In synch/poll execution, if the heap size in the web server is not sufficient to retrieve the large response block, it will lead to a JAVA out of memory exception. In synch/poll execution, if a smaller block size (less than 100,000) is used, this will result in too many blocks containing very few rows. Optimal request block size in KB is in the range from 100,000 to 1,000,000.
52
Configuration Recommendations
Recommended configuration options include: Minimum Web Server Heap Size: Min & Max=512MB Client Heap Size: Min & Max=1024MB. Sync/Poll: Optimal Request Block Size in KB in the range from 100000 to 1000000. Sync/Poll: PSBRKHND instance count needs to be increased as response block count increases. Client SocketTimeout=600000 ms or Max limit approved for the query response time.
53
9/10/2010
Reviewers
On Octocber 2007, the following people reviewed this White paper: Marc Varennes Ravi Shankar Colleen Murray Willie Suh Sunil Kulkarni Syamala Aramandla
Revision History
Date 2010-09-10 2010-06-23 Description Posted new version on 8.51 GA date although no content was changed. Modified file name. Updated formatting. Minor changes for browser performance and 8.50 GUI features. Added 8.50 Query Access Service (QAS) Added 8.50 content for GUI features. Copy edited and inserted numerous queries. Created document for PeopleTools 8.4 (inherited from 8.1 Performance RedPaper, version 8)
54
Date 12/20/2002
Description Revised. Web Server Guidelines Updated service pack information for WebLogicUpdated BEA link, added workaround for Linux. Added section on load balancing Additional Guidelines - Added comment on compression and high-speed link.Rearranged and expanded section on Navigation Pages Caching. Added explanation on session timeout. Kernel Configurations Modified file descriptor limit for HP-UXAdded proc parameters for Tru64
01/02/2004
Revised: Application Server Guidelines Increased Recycle Count value.Added explanation on PSAPPSRV instance Web Server Guidelines Updated Execute Thread Count discussion. Added Jolt Request timing monitoring toolAdded WebSphere Resource Analyzer information Additional Guidelines Updated discussion about Compression Web Server Guidelines Updated with information about Oracle Application Server Call Telephony Interface Added new chapter PSAE and PSAESRV Added new chapter
11/04/2005
Changed formatting Added missing step (set auditPwd) to the instructions to enable JOLT request timing trace Updated document with 8.48 information: Added information about preload cache, dynamic recycling and application server JVM options Added information on jolt session pooling, weighted load-balancing and dumping heap on OutOfMemoryError Added Integration Broker section Added Reporting Tools section Renamed Kernel Settings section to Operating System Settings section, and added Linux to the section
06/06/2007
Updated document with 8.49 information: Added information about Weblogic9.2 & Websphere 6.1.0.3 logging level settings to improve performance
55
9/10/2010
Date
Description Added information about to ensure JIT is enabled and class verification skipped Added information about tuning Asynch and Sync messaging on Integration Broker section Modified contents in PSAPPSRV instances, App server Dynamic recycle, Pre-load Cache, Parallel boot sections Added information about supported browsers in browser section
Copyright 2010, Oracle and/or its affiliates. All rights reserved. PeopleTools Performance Guidelines White Paper This document is provided for information purposes only and the contents hereof are subject to change without notice. This document is not warranted to be error-free, nor subject to any other warranties or conditions, whether expressed orally or implied in law, including implied warranties and conditions of merchantability or fitness for a particular purpose. We specifically disclaim any liability with respect to this document and no contractual obligations are formed either directly or indirectly by this document. This Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores, CA 94065 U.S.A. Worldwide Inquiries: Copyright Oracle. Phone: +1.650.506.7000 Fax: +1.650.506.7200 oracle.com Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners. AMD, All rights reserved. Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. Intel 56 and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. UNIX is a registered trademark licensed through X/Open Company, Ltd. 0110 document may not be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without our prior written permission.