Monitor PeopleSoft Application Server Performance

Problem

  • Unsure if your PeopleSoft Application Server is properly configured ?
  • What are the peak usage times of your Application sever ?
  • Would adding more server process instance improve performance ?
  • .....or is your Application Server to generously configured that you are you wasting resources already ?

Solution

This shell script will monitor the usage of your Application Severs process, connected and busy clients every few seconds. A comma-separated file is produced with a timestamp for every sample taken giving you insight into the usage of your Application Server - and allowing you to import into Excel to produce those colourful charts required for senior management ;-)

jsmon.sh (application/octet-stream, 1.2 kB, info)

Run this as the userid that owns and runs the PS Application Server processes.

Sample output

Date   Time     Clients PUBHQ_d BRKHQ_d SAMQ    APPQ    SUBHQ_d
050401 12:51:44 1/ 52,  0/2/0,  0/2/0,  0/2/0,  1/8/0,  0/2/0,
050401 12:51:45 2/ 52,  0/2/0,  0/2/0,  0/2/0,  2/8/0,  0/2/0,
050401 12:51:47 1/ 52,  0/2/0,  0/2/0,  0/2/0,  1/8/0,  0/2/0, <-- see comments below
050401 12:51:49 0/ 53,  0/2/0,  0/2/0,  0/2/0,  0/8/0,  0/2/0,
050401 12:51:50 2/ 53,  0/2/0,  0/2/0,  0/2/0,  0/8/0,  0/2/0, <-- see comments below
050401 12:51:52 0/ 53,  0/2/0,  0/2/0,  0/2/0,  0/8/0,  0/2/0,
050401 12:51:54 3/ 53,  0/2/0,  0/2/0,  0/2/0,  3/8/0,  0/2/0,
050401 12:51:55 2/ 53,  0/2/0,  0/2/0,  0/2/0,  2/8/0,  0/2/0,
050401 12:51:57 1/ 53,  0/2/0,  0/2/0,  0/2/0,  1/8/0,  0/2/0,
050401 12:51:58 2/ 53,  0/2/0,  0/2/0,  0/2/0,  2/8/0,  0/2/0,
050401 12:52:00 0/ 53,  0/2/0,  0/2/0,  0/2/0,  0/8/0,  0/2/0,
050401 12:52:01 0/ 53,  0/2/0,  0/2/0,  0/2/0,  0/8/0,  0/2/0,
050401 12:52:03 0/ 53,  0/2/0,  0/2/0,  0/2/0,  0/8/0,  0/2/0,
050401 12:52:05 2/ 53,  0/2/0,  0/2/0,  0/2/0,  2/8/0,  0/2/0,

This may contain more or fewer columns, depending which PS server components you have configured.

Interpretation of sample output

The first 2 columns simply contain date and time.

In the Client column you can see how many users are currently logged on (increasing from 52 to 53 in the sample output) and how many of them are busy (varies between 0 and 3 in the sample). Busy in this context means that they are seeing the flashing Processing... in the top right corner in the browser as they are e.g. saving a page.

All other comlumns represent queues. A triplet of x/y/z for a queue represents

  • x busy server processes of
  • y server processes configured,
  • while z additional requests are queued.

E.g.:

50401 12:51:47 1/ 52,  0/2/0,  0/2/0,  0/2/0,  1/8/0,  0/2/0,

tells you that on 1 Apr 2005 at 15:51:47, 52 users were logged on and one user was busy (1/ 52 in the client coumn). This one active user was executing some PS action that was serviced by one of eight defined APPSERV server while there were no queued APPSRV requests (1/8/0).

Unfortunately, as client, server and queue status are queried a few split seconds after each other, the output is not 100% accurate, so you may get reports that contain inconsistent lines like the second bold line above

050401 12:51:50 2/ 53,  0/2/0,  0/2/0,  0/2/0,  0/8/0,  0/2/0

In this case the 2 clients were found to be busy, but when the server status was queried a split second later (or earlier), those 2 request had already completed (or not yet started).

Background

A PeopleSoft Application Server, actually BEA Tuxedo, receives service requests that are processed in the order that they are coming in. Requests that cannot be immediately serviced will be queued and processed as soon as as sever instance becomes available.

Incoming requests may be handled by different types of severs/queues depending on your configuration (PSAPPSRV for "normal" request, PSQCKSRV for request that should normally be quick to process, PSQRYSRV for PS Queries, etc.).

The end-user might experience excessive queuing as bad response times as he/she is sitting in front of their browser watching the flashing " Processing....". Therefore it is key that you find the right number of server instance to define for your user community. Start with your best guess configuration, then monitor and adjust your settings continuously to ensure that you have the right number and mix of server instances. Use dynamic spawning of additional instances, especially if you are running different types of server instances, or if you need to run SQRs or Application Engine processes during off-peak online usage of the system. My personal advice on the number of server instances is to have some, albeit minimal, queuing in peak-usage times, anything else is a waste of CPU and memory (which you may better want to dedicate to something else, e.g. your Oracle buffer pool):

  • PSAPPSRV - 1 per 20 connected users
  • PSSAMSRV - 1 or more, depends on your PS application, e.g. hardly used in HRMS/HCM
  • PSQCKSRV - disable it
  • PSQRYSRV - yes if you use PS Query.

You will also want to the publish/subscribe servers, so make sure in psadmin you answer:

Do you want the Publish/Subscribe servers configured (y/n)? [y]:y
Comments (2)