PeopleSoft Performance Tuning

1. Introduction:some specific items to focus on when evaluating
It is a widely known fact that 80% of performancedatabase environment:o Make sure the database is
problems are a direct result of the poor performance,sized and configured correctlyo Make sure that the
such as server configuration, resource contention.hardware and O/S environments are set up
Assuming you have tuned your servers and followedcorrectlyo Verify that patch levels are currento Fix
the guidelines for your database server, applicationcommon SQL errorso Review documentation of
server, and web server, most of your performanceknown problems with PeopleSoft supplied codeo Be
problems can be addressed by tuning the PeopleSoftsure to check available patches from PeopleSoft that
Application.might address the problemo Review PeopleSoft
This article presents methodologies and techniquessuggested kernel parameterso Set up the right
for optimizing the performance of PeopleSoftnumber of processeso Review the application server
applications. The methodologies that are discussedblocking for Long Running Querieso Make sure not to
are intended to provide useful tips that will help toundersize version 8 application server
better tune your PeopleSoft applications. These tipsIt is also recommended to continue to review these
focus on tuning several different aspects within aitems on a periodic basis.
PeopleSoft environment ranging from servers to6. Database Performance:
indexes. You will find some of these tips provide youThe performance of an application depends on many
with a significant improvement in performance whilefactors. We will start with the overall general
others may not apply to your environment.approach to tuning SQL statements. We will then
2. Server Performance:move to such areas as indexes, performance
In general, the approach to application tuning startsmonitoring, queries, the Tempdb (Tempdb is often
by examining the consumption of resources. Thereferred to as plain "TEMP"), and, finally, servers and
entire system needs to be monitored to analyzememory allocation.
resource consumption on an individual componentTo understand the effect of tuning, we must
basis and as a whole.compare 'time in Oracle' with 'request wait time'.
The key to tuning servers in a PeopleSoftRequest wait time is the time that a session is
environment is to implement a methodology toconnected to Oracle, but not issuing SQL statements.
accurately capture as much information as possibleIn Oracle time shows the amount of time resolving a
without utilizing critical resources needed to serve theSQL statement once it has been submitted to Oracle
end-users.for execution. If time in Oracle is not significantly
Traditional tools used to measure utilizations impactsmaller than the request wait time, then application
the system being measured and ultimately thetuning should be examined. Request wait time is
end-user experience. Commands like the followingalmost always much greater than in Oracle time,
provide snapshot data but not without an associatedespecially for on line users, because of think time.
cost. These tools can consume a significant amountOne exception to this is for a batch job that
of resources so care should be taken whenconnects to Oracle and submits SQL statements,
executing them.a) df sizeb) iostat swapinfoc) ipcsthen processes the returned data. A greater ratio of
timexd) netstat topf) ps uptimeg) sar vmstath)request wait to Oracle could indicate a loop in the
swapinfo also glance & gpmapplication outside of Oracle.
The goal of using these native commands is toThis should be identified and eliminated before
identify, if and where, a bottleneck is in the server. Iscontinuing the performance analysis.
the problem in the CPU, I/O or memory? TheseThe next step focuses on tuning the SQL
native tools provide indicators, but at the same timestatements that use the most resources. To find the
could skew the results because of the overheadmost resource consuming SQL statements, the
associated with them. Typically, additional third partyscheduled collection approach can be used. The
tools are needed to complete the analysis.duration time is a commonly used criteria to locate
The last hurdle being faced in tuning the server isthe offensive SQL statements. Other useful criteria
making timing decisions on when to upgrade theinclude the following wait states: I/O, row lock, table
hardware itself. To do this, much more informationlock, shared pool, buffer, rollback segment, redo log
needs to be collected and stored in order tobuffer, internal lock, log switch and clear, background
understand if an historical spike in resource utilizationprocess, CPU, memory and I/O. For each offensive
was a one-time aberration or a regular occurrenceSQL statement, the execution plan and database
building over time. The recommendation is to look atstatistics are analyzed. The following statistics are
third party vendors for solutions that can collect keyimportant: table and column selectivity, index
performance indicators while minimizing overhead onclustering factor, and storage parameters. First, all the
the system. The collected data can then be put in ajoins of the SQL are considered. For each join, the
repository for detailed historical analysis.ordering of the tables is analyzed. It is of major
3. Web Server Performance:importance to have the most selective filter condition
The release of PeopleSoft Pure Internetfor the driving table. Then, the type of the join is
Architecture(TM) introduces new components toconsidered. If the join
PeopleSoft architecture--the web server andRepresents a Nested Loop, forcing it into a hash join
application server. The application server is wherecan be advantageous under some conditions.
most shops struggle with appropriate sizing. WebThe analysis stage usually results in several
servers are used for handling the end-user requestsmodification proposals, which are applied and tested
from a web browser to eliminate the administrativein sequence. Corrective actions include database
costs associated with loading software (fat clients)object changes and SQL changes. The typical
on individual desktops. The benefit is a significantdatabase object changes are: index change, index
savings on software deployment costs, maintenance,rebuild and table reorganization.
and upgrades. While the shift from fat clients to thinThe typical SQL changes are: replacing subquery with
lessens the administrative burden, it increases thea join, splitting a SQL into multiple SQLs, and inserting
need to ensure the web servers are finely tunedOracle hints to direct the Optimizer to the right
since they will service a large number of clients. Theexecution plan.
requirement for these web servers to achieve7. Indexes:
optimal performance is vital due to the missionTuning indexes is another important factor in
critical-nature PeopleSoft plays in today's enterprise.improving performance in a PeopleSoft environment.
Recommendations for ensuring good performanceIndex maintenance is crucial to maintaining good
for web servers:o Ensure load balancing strategy isdatabase performance. Statistics about data
soundo Implement a solution to verify and highlightdistribution are maintained in each index. These
changes in traffic volumeso Closely monitor thestatistics are used by the optimizer to decide which,
response times to verify that the strategy isif any, indexes to use. The statistics must also be
optimizing the web serverso Measure and reviewmaintained so that the optimizer can continue to
historical patterns on server resource utilization (seemake good decisions. Thus, procedures should be
server section above).o Increase the HEAP size tosetup to update the statistics as often as is practical.
200, 250, 300, or 380 MB for the web logic startupKeep in mind that objects that do not change, do
script.not need to have their statistics created again. If the
4. Tuxedo Performance Management:object has not changed, the stats will be the same.
Tuxedo is additional middleware PeopleSoft utilizes toIn this case, recreating the same statistics over again
manage the following Internet application serverwill waste resources.
services:o Component Processor--Responsible forSince PeopleSoft uses a lot of temp tables that are
executing PeopleSoft Components--the coreloaded and then deleted, but not dropped, it is helpful
PeopleSoft application business logico Businessto create the statistics when those tables are full of
Interlink Processor-- Responsible for managing thedata. If the statistics are created when the table is
interactions with third-party systemso Applicationempty, the stats will reflect that fact. The Optimizer
Messaging Processor--Manages messages in awill not have correct information when it chooses an
PeopleSoft systemo User Interfaceaccess path.
Generator--Generates the user interface based onPeriodically, indexes should be rebuilt to counter index
the Component or Query definition and generatesfragmentation. An index creation script can be
the appropriate markup language (HTML, WML, orcreated via PeopleTools to drop and rebuild indexes.
XML) and scripting language (JavaScript, WMLScript)This procedure will eliminate index -wasted space on
based on the client accessing the applicationoblocks that are created as a result of Oracle logical
Security Manager--Authenticates end-users anddeletes. This is only necessary on tables that are
manages their system access privilegeso Querychanged often (inserts, updates or deletions).
Processor--Executes queries using the PeopleSoftIndex scheme is also important to look at. The
Query toolo Application Engine--Executes PeopleSoftindexes in a standard PeopleSoft installation may not
Application Engine processeso Processbe the most efficient ones for all installations. Closely
Scheduler--Executes reports and batch processes andexamine data's pattern, distribution, and modify the
registers the reports in the Portal's Content Registryoindexes accordingly. For example, the index on
SQL Access Manager--Manages all interaction with thePS_VOUCHER (BUSINESS_UNIT, VOUCHER_ID)
relational DBMS via SQLcould be changed to (VOUCHER_ID,
This Tuxedo middle tier is another critical andBUSINESS_UNIT) for an implementation with only a
influential component of performance. Similar to thefew business units. Use ISQLW Query Options (Show
web server, what is needed is a way to see into theQuery Plan and Show Stats I/O) to determine the
"black box" to further understand some of the keyeffectiveness of new indexes. However, be careful
performance metrics.to thoroughly test the new index scheme to find all
Some of the performance metrics to capture whenof its ramifications.
analyzing tuxedo are:o Transaction volumes by8. Queries:
domain, server, and applicationo Response time forIt is a good idea to examine queries to try and fix a
each end-user requesto Tuxedo service generating aproblem that is affecting the application. Query
poor performing SQL statemento Break down ofanalyzer can be used to see optimizer plans of slow
Tuxedo time by Service time and Queue timeoSQL statements. Choose "Query/Display Plan" to see
Identify problem origin - is it in tuxedo or thea graphical representation of a query plan.
database?o Response time comparisons for multipleAlternatively, by issuing a "set showplan_text on"
Tuxedo Serverand running the statement will get a textual
Reports has shown that too often companies throwrepresentation of the plan, showing indexes used, the
hardware at a Tuxedo performance problem when aorder in which the tables were used, etc.
more effective solution can be as simple as addingWhen investigating queries, worktables created per
another domain to the existing server(s). This is duesecond should also be addressed. If a large number
to the fact that PeopleSoft and Tuxedo lackof work tables being are created per second (i.e.
management solutions that provide historical views ofhundreds per second), this means that a large
performance.amount of sorting is occurring. This may not be a
5. Application Performance:serious a problem, especially if it does not correspond
It is an accepted fact that 80% of application andwith a large amount of I/O.
database problems reside in the application code. But,However, performance could be improved by tuning
there are other technical items to consider whichthe queries and indexes involved in the sorts and,
could influence the applications performance. Here areideally, this will eliminate some sorting.