PeopleSoft Online Performance Guidelines
Agenda Introduction Web Browser configuration Web Server configuration Application Server
PIA PeopleSoft Internet Architecture Introduction
Pure Internet Architecture
Communication mechanism
Architecture Overview
Server Process Request Queues
Back to the basic Production vs Development setup Timeout [Prod: on, Dev: off] Cache [Prod: on, Dev: off] LAN speed between each leg ping -l [size] -r [route_count] [hostname] ftp test DataMover Export at different legs Sufficient memory any paging hardware cache enable Tuned the Operating System
PeopleSoft Internet Architecture Web Browser HTTP/HTML Web Server Java Java Servlets Portal Servlet Presentation Relay Servlet Integration Relay Servlet JOLT T U X E D O Application Server Services Portal Processor User Interface Generator App Messaging Processor Bus Interlink Processor Component Processor Process scheduler Query Processor Application Engine Security Manager S Q L SQL RDBMS Server RDBMS Instance Application Data Tables Application Meta data Portal Registry Batch Batch Processes Process Scheduler Server
Web Browser Settings Web Browser HTTP/HTML Web Server Java Java Servlets Portal Servlet Presentation Relay Servlet Integration Relay Servlet JOLT T U X E D O Application Server Services Portal Processor User Interface Generator App Messaging Processor Bus Interlink Processor Component Processor Process scheduler Query Processor Application Engine Security Manager S Q L SQL RDBMS Server RDBMS Instance Application Data Tables Application Meta data Portal Registry Batch Batch Processes Process Scheduler Server
Web Browser Settings Reduce unnecessary checking and downloading of the same Internet objects within the online transaction session. The Internet objects that most likely remain unchanged during an online session are: Graphics objects (*.jpg, *.gif) Style Sheets (*.css) Java Scripts (*.js) Some HTML pages (such as PIA Login page)
MS Internet Explorer Configuration Recipe Internet Option Temporary Internet Files Settings Automatically
Netscape Configuration Recipe Edit Preferences Advanced Cache Once per session
HTTP 1.1 compliant Web Browser Only HTTP 1.1 compliant web browsers request compressed files. Web browsers that are not HTTP 1.1 compliant request and receive the files un-compressed, therefore the Web Server will not be able to send any compressed HTML file to the browser (despite the configuration.properties has the Compress Response switch turns on.)
Which Browser is HTTP 1.1 compliant? Netscape 4.5 and above, including the new Netscape 6 Explorer versions 4 and above (other than IE Mac versions 4.5/5 which do not support HTTP 1.1 compression). Here is the configuration recipe to verify if Internet Explorer is configured to use the HTTP 1.1 protocol: 1. Open the Internet Options property sheet If using IE 4, this is located under the View menu If using IE 5, this is located under the Tools menu 2. Select the Advanced tab Under HTTP 1.1 settings, verify that Use HTTP 1.1 is selected
HTTP 1.1 compliant Web Browser
Web Server Settings Web Browser HTTP/HTML Web Server Java Java Servlets Portal Servlet Presentation Relay Servlet Integration Relay Servlet JOLT T U X E D O Application Server Services Portal Processor User Interface Generator App Messaging Processor Bus Interlink Processor Component Processor Process scheduler Query Processor Application Engine Security Manager S Q L SQL RDBMS Server RDBMS Instance Application Data Tables Application Meta data Portal Registry Batch Batch Processes Process Scheduler Server
WebLogic Service Pack 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 issue or socket stability problems. service pack can be obtained from ftp://ftp.peoplesoft.com/outgoing/gsc/weblogic/5.10
Logs Mon Sep 24 15:43:40 PDT 2001:<I> <ListenThread> Listening on port: 3300 Mon Sep 24 15:43:40 PDT 2001:<I> <SSLListenThread> Listening on port: 5443 Mon Sep 24 15:43:40 PDT 2001:<I> <Posix Performance Pack> System has file descriptor limits of - soft: '256', hard: '1024' Mon Sep 24 15:43:40 PDT 2001:<I> <Posix Performance Pack> Using effective file descriptor limit of: '1024' open sockets/files. Mon Sep 24 15:43:40 PDT 2001:<I> <Posix Performance Pack> Allocating: '3' POSIX reader threads Mon Sep 24 15:43:41 PDT 2001:<I> <WebLogicServer> WebLogic Server started
WebLogic Thread Count Increase ExecuteThreadCount change the weblogic.properties as Weblogic.system.executeThreadCount=100
JVM Heap Size Set JVM Heap Size between 64MB to 512 MB Set min and max to the same value -verbosegc -noclassgc
WebLogic 5.1 Win/NT Configuration Recipe Regedit HKEY_LOCAL_MACHINE SOFTWARE BEA Systems WebLogic 5.1.0 MAX_HEAP_SIZE Increase beyond 64 MB MIN_HEAP_SIZE Set MIN_HEAP_SIZE = MAX_HEAP_SIZE
UNIX Configuration Recipe Edit startweblogic.sh Increase beyond 64 MB Set MIN_HEAP_SIZE = MAX_HEAP_SIZE
File Descriptor A file descriptor is required for every file that is opened, every *.class file read in by weblogic, every jolt connection To raise the file descriptors for UNIX, use the following command: ulimit n 4000 Do nothing for Win/NT
Web Server Settings Enable Compression (Gzip, deflate) responses; in particular for WAN/Dialup users. PIA will try to send compressed HTML response to the compression-enabled (HTTP 1.1 enabled) browser, such as Microsoft IE 5 or above. Modified Configuration.properties CompressResponse=true PortalCompressResponse=true PortalAcceptCompressedEncodings=true
How to tell Compression is on? Multiple AppServer domains connectioninformation=true Control-J Modified Configuration.properties
Reducing TCP Wait time The default TCP Wait Time for both NT and most UNIX operating systems are 4 minutes, which is too long for PIA usage and tends to leave too many socket connections staying in the TIME_WAIT state. By shortening the WAIT time, the socket can be recycled more efficiently.
NT: TCP Wait Time Use the registry editor, regedit, and create a REG_DWORD named TcpTimedWaitDelay under HKEY_LOCAL_MACHINE\SYSTEM\Curre ntcontrolset\services\tcpip\parameters
UNIX: TCP Wait Time For HP and SUN As root do: ndd -set /dev/tcp tcp_time_wait_interval 60000 where 60000 is for 60 secs, the minimum recommended value. You must put this command in one of the rc2.d scripts to get it to be automatically set at boot time For AIX To set the TCP_TIMEWAIT values to 15 seconds, run the followign command: /usr/sbin/no o tcp_timewait =1
HTTP KeepAlive Socket connection needs File Descriptor Reusing a socket helps performance, but. Too many KeepAlive packets, jam the pipe. HTTP 1.0 does not do good job in socket reuse. Many CLOSE_WAIT. netstat -a To make it simple, turn off the HTTP KeepAlive.
Turn off HTTP KeepAlive For Apache: Modified httpd.conf For WebLogic Modified Weblogic.properties KeepAlive Off Off MaxKeepAliveRequests 0 KeepAliveTimeout 200 200 weblogic.httpd.http.keepalive.enable=false weblogic.httpd.http.keepalivesecs=60 weblogic.httpd.https.keepalivesecs=120
Administer Personalization Multi-row insert Caching Navigation Pages Pages on on the the browser METAXP = 2000
Application Server Settings Web Browser HTTP/HTML Web Server Java Java Servlets Portal Servlet Presentation Relay Servlet Integration Relay Servlet JOLT T U X E D O Application Server Services Portal Processor User Interface Generator App Messaging Processor Bus Interlink Processor Component Processor Process scheduler Query Processor Application Engine Security Manager S Q L SQL RDBMS Server RDBMS Instance Application Data Tables Application Meta data Portal Registry Batch Batch Processes Process Scheduler Server
Memory resources.make sure don't have too many PSAPPSRV processes booted. During peak usage times, you should see some small amount of queuing for the psappsrv processes. If you have too many processes, this will affect performance. The extra PSAPPSRV processes will not only take up memory space and CPU time from the OS, the main issue is that each PSAPPSRV will not be 'sufficiently' cached. I.e. Each PSAPPSRV can only cache a portion of the user panels. It will take much longer time to fully cache each PSAPPSRV.
NT Task Manager
NT: Perfmon
UNIX ps_chk_domain script Here is a sample output of the ps_chk_domain script: Please Enter your application server domain name?? PT81 Please Enter interval in seconds?? 10 Please Enter # of interval's?? 100 Tue Oct 23 23:00:33 PDT 2001 For all PS Processes: Resident memory size is: 123.543 MB CPU for PS Processes: 11 % Virtual memory size is: 198.098 MB For all PSAPPSRV Processes: Resident memory size is: 108.453 MB 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, this include memory that has been paged out to the physical disk. If the Virtual memory continues to increase, the RecycleCount of the AppServer should be lowered.
Determine queue length To determine the queue length of the specific domain, do the following steps: run psadmin Go to PeopleSoft Domain Administration for the specific domain name Select TUXEDO command line Run the command pq
PSAPPSRV Recycle Count In PSAPPSRV.CFG It is recommended to set Recycle Count at 2000. For PeopleTools 8.15 and earlier: Set the Recycle Count at 2000. For PeopleTools 8.16 and after: The default value for Recycle Count is already set to 2000. The recycle count should be adjusted so that no memory swapping is introduced because of a high recycle count value. (See 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=1, which is the default value.
MaxInMemoryObjects For PeopleTools 8.16 and before We have the MaxInMemoryObjects Benefit: Keep memory footprint low Disadvantage: very CPU intensive Recommendation: maxinmemoryobjects=0