Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd....

85
Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go- faster.co.uk www.go- faster.co.uk

Transcript of Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd....

Page 1: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Performance Tuning for PeopleSoft Administrators

David KurtzGo-Faster Consultancy Ltd.

[email protected]

www.go-faster.co.uk

Page 2: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Who Am I?

• Oracle Database Specialist– Independent consultant

• Performance tuning– PeopleSoft ERP– Oracle RDBMS

• Book– www.psftdba.com

• Oak Table•

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 2

Page 3: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

It depends…

• The answer to all questions should be deemed to be implicitly prefixed ‘it depends’ if they are not already explicitly so prefixed. The reasons for this include, but are not limited to:– There may be exceptions where the answer is either

false or not completely true– There may be exceptions to the exceptions and so on ad

infinitum.– The question may not explicitly scope all the conditions

upon which the answer dependsUKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 3

Page 4: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

‘Not Completely True’

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 4

Page 5: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Performance

Performance is exactly what the user perceives it to be. No more, no less.

Performance is ‘poor’ when the user’s perception does not match their expectation.

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 6

Page 6: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

“Data, data, data, I cannot make bricks without clay.”

You don’t need fancy monitoring software to tell you that a system is performing poorly.

That is what users are for.

But you do need to record and monitor metrics to provide diagnostic data

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 7

Page 7: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Performance Tuning is a search for lost time.

Detection is, or ought to be, an exact science.

It should be treated in the same cold and unemotional manner.

The Sign of Four, Arthur Conan-Doyle

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 8

Page 8: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

PEOPLETOOLS PERFORMANCE MONITOR

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 10

Page 9: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Performance Monitor

• Part of PeopleTools– PeopleTools to monitor PeopleTools

• Since PeopleTools 8.44

– Fully instrumented– Including a timed-event interface for the

component processor• Event 10046 for the application

– Useful PeopleBook– No separate licence

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 11

Page 10: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 12

WebServer

WebServer

Application Server

(application logic)

Application Server

(application logic)

APPQ PSAPPSRV DBMS

(application data & meta-data

DBMS

(application data & meta-data

SQLTuxedo

Messagehttp / https

Browser

(presentation & JavaScript)

Browser

(presentation & JavaScript)

Monitoring System

PIAServlet

PSPPMSRV

Monitored System

Web Server

(presentation logic)

Web Server

(presentation logic)

PIAServlet

DBMS

(application data & meta-data

DBMS

(application data & meta-data

Tuxedo Message

http / https

Browser

(presentation & JavaScript)

Browser

(presentation & JavaScript)

ScreenPaint

JavaScript

Application Server

(application logic)

Application Server

(application logic)

APPQ PSAPPSRV

PSMONITORSRV

SQL

PPMIServlet

MonitorServlet

Page 11: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Performance Monitor Metrics

• Transactions– User activities in PIA that cause communications with

application server– Sampled– Enabled to form a trace

• PSPMTRANSHIST

• Events– Periodic samples– Usually initiated by monitoring agents– eg. CPU, Tuxedo counters

• PSPMEVENTHISTUKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 13

Page 12: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

©2012 www.go-faster.co.uk 14UKOUG2012 - Performance Tuning for PeopleSoft Administrators

WebServer

(presentation logic)

WebServer

(presentation logic)

ServletThread

Application Server

(application logic)

Application Server

(application logic)

APPQ PSAPPSRV

Browser

(presentation & JavaScript)

Browser

(presentation & JavaScript)

DBMS

(application data & meta-data

DBMS

(application data & meta-data

SQLTuxedo

Messagehttp / https

Web Server Access Log

Tuxedo ServiceTrace

Oracle SQL*Trace

ScreenPaint

JavaScript

PeopleToolsTrace

101: PIA Request

115: Jolt Time

400: Tuxedo Service

401: ICPanel

400: PeopleCode only

406/407/408:SQL Exec

Page 13: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

©2012 www.go-faster.co.uk 15

Analytics: System Performance

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

Page 14: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

©2012 www.go-faster.co.uk 16

Analytics: Top Components

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

Page 15: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

©2012 www.go-faster.co.uk 17

Performance Trace

• Generates a group of PMUs for activity in a user session– Choose an ID to

identify records later– Verbose

• Includes SQL• Significant overhead.

Don’t use as default. Trace only.

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

Page 16: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Performance Monitor Transactions

• User activity in PIA• Performance

Monitoring Unit– Hierarchy of

transactions

• Similar to Oracle event 10046 trace– recursive actions

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 18

VERBOSE

Page 17: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

SQL in Verbose Trace

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 19

Page 18: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

©2012 www.go-faster.co.uk 20

How much data?

• Control sampling– Proportion of transactions collected

• Depends upon activity on system • On busy self-service system as little as 1 in 1000

– It depends! You will have to decide for yourself.

– Event sampling frequency• For each agent• 5 minutes – 15 minutes

– Depends on whether you want to be able to see short-lived behaviours.

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

Page 19: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

©2012 www.go-faster.co.uk 21UKOUG2012 - Performance Tuning for PeopleSoft Administrators

Page 20: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Performance Tuning the Performance Monitor

• Always configure self-monitoring of the monitoring database– So you know it works– So you can work out

why the analytics are slow!

• Performance Tuning the Performance Monitor Archive Process– http://

blog.psftdba.com/2008/05/performance-tuning-performance-monitor.html

• Additional indexes– http://

blog.psftdba.com/2006/04/performance-tuning-performance-monitor.html

– http://blog.psftdba.com/2008/12/poor-performance-of-pspmsessionsvw-view.html

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 22

Page 21: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Performance Monitor Data

• Delivered analytics will only get you so far– Take time to

understand the data model

– Write your own analytics

• Data stored in– PSPMTRANSHIST– PSPMEVENTHIST

• Archived data in – PSPMTRANSARCH– PSPMEVNTARCH

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 23

Page 22: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Custom Analytics with Excel

• Write a query to extract the data– Create ODBC source using Oracle’s ODBC driver– Use MSQuery to extract the data directly via into

Excel workbook• Possibly directly into a pivot table

• Chart the data• When you update the data the chart will also

update.

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 24

Page 23: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Performance Monitor Further Reading

• Performance Monitor PeopleBook• PeopleSoft Performance Monitor Red Paper

– Doc ID: 747510.1

• PeopleSoft for the Oracle DBA – Chapter 10

• Practical Guidance on the Use of PeopleSoft Performance Monitor– www.go-faster.co.uk/Practical_PPM.ppt– www.go-faster.co.uk/Practical_PPM_2009.ppt

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 26

Page 24: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

PEOPLETOOLS INSTRUMENTATION FOR ORACLE DATABASEUKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 27

Page 25: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Oracle DBMS: Module & Action

• Enterprise Manager / Grid Control• Active Session Hstory (ASH)• Oracle Extended Trace

– From 10g set trace on Module/Action

• Oracle Resource Manager

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 28

Page 26: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Instrumentation for Oracle Databaseup to PeopleTools 8.49

• DBMS_APPLICATION_INFO– Sets a Session Attribute

• CLIENT_INFO since PT7.53– Useful for auditing with database triggers

• Module and Action not set– Module defaults to program name

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 29

Page 27: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

PeopleTools 8.50 Instrumentation for Oracle Database

• MODULE and ACTION– On-Line

• Module/Action– Component/Page, Query Name, Subscription Message

• Client ID = Operator ID

– Scheduled Processes• But only sets ACTION to PRCSNAME

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 31

Page 28: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Module & Action in OEM

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 32

Page 29: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Custom PeopleTools Instrumentation

• Trigger on PSPRCSRQST– Set Module to PRCSNAME– Set Acton to

• Process Instance• Or Operator ID & Run Control ID• http://www.go-faster.co.uk/scripts/psftapi.sql

– Override PeopleTools 8.50 instrumentation• Module = program, Action = Process Name

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 33

Page 30: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 34

Page 31: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

PeopleTools 8.52 Instrumentation for Oracle Database

• Application Engine in PeopleTools 8.52– Module = PSAE . program name . session ID– Action = Program . Section . Step

• Overrides custom trigger• ASH data for specific process instance

using PSPRCSQUE.SESSION_ID_NUM

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 35

Page 32: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

©2012 www.go-faster.co.uk 36

Oracle RDBMS:Active Session History

• Samples active sessions every second• Circular buffer in memory

– v$active_Session_history– It should hold about 1 hour of data

• 1 in 10 samples stored in database– DBA_HIST_ACTIVE_SESS_HISTORY– Flushed out during AWR snapshot

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

Page 33: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

©2012 www.go-faster.co.uk 37

Licensing

• ASH is a part of the Diagnostics Pack– only available with Enterprise Edition of Oracle

database.

– That’s means it costs money.– I don’t like it either, but that is how it is!

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

Page 34: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

©2012 www.go-faster.co.uk 38

ASH in OEM

• You can run ASH reports via EM

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

Page 35: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

©2012 www.go-faster.co.uk 39

Example ASH Report

• These processes were responsible for 86% of total DB activity

• Average 14.8 active sessions (out 32 processes)

• If I go on I get SQL statements

• But I don’t get execution plans.

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

Page 36: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

©2012 www.go-faster.co.uk 40

What does ASH retain?

• Most of the columns are on v$session– Session

• Session ID and serial, query coordinator– Wait

• event id, name and parameters– SQL

• SQL_ID, plan hash, opcode• Plan line numbers from 11g

– Object • object, file and block numbers• row numbers from 11g

– Application • module, action, client_id …

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

Page 37: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Active Session History

• Query ASH repository directly– DBA_HIST_ACTIVE_SESS_HISTORY

• Profile DB Time by– Module / Action– SQL_ID – SQL Plan Hash Value (if lots of different

literals)

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 41

Page 38: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

©2012 www.go-faster.co.uk 42

Background Reading

• Sifting through the ASHes, Graham Wood– http://www.oracle.com/technology/products/manageability/database/pdf/t

wp03/PPT_active_session_history.pdf

• The ASHes of (DB) Time, Graham Wood– UKOUG 2009

• http://www.ukoug.org/lib/show_document.jsp?id=11472– Video of presentation at MOW2010

• http://www.oaktable.net/media/mow2010-graham-wood-ashes-time-part1• http://www.oaktable.net/media/mow2010-graham-wood-ashes-time-part-2

• Doug Burns’ Oracle Blog– http://oracledoug.com/serendipity/index.php?/plugin/tag/ASH

• Introduction to DBMS_XPLAN– http://www.go-faster.co.uk/Intro_DBMS_XPLAN.ppt

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

Page 39: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Further Reading

• Practical use of Active Session History• With examples drawn from PeopleSoft

– http://www.go-faster.co.uk/ukougpres.htm #Practical_ASH.ppt

– http://www.go-faster.co.uk/Practical_ASH.pdf

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 43

Page 40: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

PEOPLETOOLS TRACES

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 44

Page 41: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Traces

• PeopleTools SQL Trace Profiler– PSTraceViewer

• Unsupported

– TraceMagic • Doc 1470578.1

• Application Server Log– LogFence=4

• Diagnostic– Large Files– Difficult to extract

performance metrics– Timing Inaccuracies– Incomplete– Measurement Intrusion

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 45

Page 42: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Batch Timings Reports

• Application Engine and COBOL– Time spent in each step– AE can write this to database– Can get negative numbers

• Only ever one, can get around this with some arithmetic.

• Fixed in PT8.53?

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 46

Page 43: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Web Server Access Log

• Logs every request– Large files– Time taken for every request– Client IP address

• But it could just be a network component not the actual client

– Oracle Doc 662319.1

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 47

Page 44: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

There are only two kinds of performance problems

• You are working too hard.– Consuming resource

• CPU• Disk• Memory

• You are being prevented from working– Queuing

• Database Locking• Tuxedo Queuing• CPU overload• …

– Waiting for somebody else working too hard!

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 48

Page 45: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

• It is generally better to queue higher up the stack.– The impact of queuing in lower tiers can propagate

across the system through mechanisms in higher tiers.– Protect lower tiers for overload by correct

configuration• But do explain this to DB/OS/disk admins!

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 49

Monitored System

Web Server

(presentation logic)

Web Server

(presentation logic)

PIAServlet

DBMS

(application data & meta-data

DBMS

(application data & meta-data

Tuxedo Message

http / https

Browser

(presentation & JavaScript)

Browser

(presentation & JavaScript)

ScreenPaint

JavaScript

Application Server

(application logic)

Application Server

(application logic)

APPQ PSAPPSRV SQL

Page 46: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Good Queuing!

• While it is best not to have to queue at all– better to queue on the APPQ in the application

server domain, than run out of CPU and queue on the operating system run queue.

• Use Process Scheduler configuration – limit the number of concurrent processes– prioritise processing of queued processes

• This can result in increased system throughput

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 50

Page 47: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

COST-BASED OPTIMIZER STATISTICS

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 51

Page 48: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Cost-Based Optimizer Statistics

• Performance of SQL is a significant aspect of any OLTP system– PeopleSoft is not an exception to this rule.

• All SQL databases* use volumetric statistics to make SQL Optimizer determine the ‘best’ execution plan.

• ⇒ You need to get your statistics right• *at least the ones on which PeopleSoft is certified!• But I am only going to talk about Oracle RDBMS

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 52

Page 49: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

How should you collect Optimizer Statistics in Oracle?

• Maria Colgan and others – http://blogs.oracle.com/optimizer/ – Oracle Database Optimizer: An Insider’s View of How the Optimizer Works

(Wednesday)– Oracle Database Optimizer: Harnessing the Power of Optimizer Hints (Tuesday)

• Carlos Sierra– How to Create in 5 Minutes a SQL Tuning Test Case Using SQLTXPLAIN (Mon)– How to Improve SQL Performance with the New SQL Health Check Tool (Tuesday –

actually now!)

• Jonathan Lewis - http://jonathanlewis.wordpress.com/ – Creating Test Cases (Monday)– B-Tree Indexes (Mon)

• Christian Antognini - http://www.antognini.ch/blog/– How the Query Optimizer Learns from Its Mistakes (Tuesday – also now!)

• Peter Brink – Cardinality Feedback

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 53

Page 50: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

How should you collect Optimizer Statistics in Oracle?

• Tell the Optimizer the truth about your data.– Or at least as much of the truth as it needs to make

the right answer.– Making it handle too much of the truth can be

prejudicial without being probative.

• Data in Table has a lifecycle– Create / Change / Delete data,– Collect Statistics– Use it

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 54

Page 51: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

What does Oracle do by default?

• Oracle collects statistics in the maintenance window– 10pm-6am weekdays, and weekends

• Collects statistics on stale objects– Automatically determines optimal sample size

for collecting statistics– Automatically determines whether data is

sufficiently skewed to require histograms.

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 55

Page 52: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Implications for PeopleSoft of Default Oracle Behaviour

• PeopleSoft is parse intensive. – Literal values in dynamic SQL– Non-use of ReUseStatement in Application Engine– %ProcessInstance, %Oprid and similar macros always resolve to

literals– Temporary Record corresponds to many tables.– Non-sharable SQL

• Skewed Data– Default values to avoid NULL

• 0, single space, 1st January 1900.

• Excessive histogram generation– Processing histograms adds to both statistics collection and parse

overhead.UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 56

Page 53: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

New Optimizer Features in 11g

• Table Preferences– Default dbms_stats options at table level

• CASCADE• DEGREE• ESTIMATE_PERCENT

– However, there are new features that only work properly with automatic sample size.

• GRANULARITY• INCREMENTAL• METHOD_OPT

– Can control histogram collection

• STALE_PERCENT– Control when statistics are refreshed

– Use these, and you can safely use standard, default approaches to maintaining statistics with PeopleSoft.

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 57

Page 54: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

%UpdateStats macro• DDL Model calls dbms_stats.gather_table_statistics

– In 11g, can remove most parameters and use table preferences to control the behaviour of DBMS_STATS.

– This applies to whenever statistics are collected.

• There is still a case for intercepting calls from %UpdateStats to dbms_stats with custom PL/SQL package.– Some processes make excessive use of %UpdateStats

• eg. TL_TIMEADMIN

– Statistics collection can be significant overhead during batch process– Sometimes a process may call %UpdateStats on a permanent table.

• If that table is large then incremental difference small. • Might only want to collect statistics if sufficient change,

– ie statistics are STALE.

– Fine grain control over %UpdateStats can be very useful.UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 58

Page 55: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Warning: Statistics History

• NB: Default Oracle Statistics History Retention policy is 31 days.– Global policy – can specify at table level– Every %UpdateStats call generates history– http://

blog.psftdba.com/2009/06/oracle-10g-statistics-history-retention.html

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 59

Page 56: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

pscbo_stats – 1322888.1

• It is an attempt to solve a genuine problem– It has continued to evolve since its initial release

• However, it is a 10g solution.– It does not attempt to manage 11g table preferences– Uses excessively high sample sizes– Too many buckets for histograms– Fails to recognise all PS objects are NOPARALLEL– No partition support– 11g Incremental Statics Synopses on partitioned objects only work

properly on default sample size• Based upon my experience of PeopleSoft on Oracle:

– I think better effects can be achieved with better choices for histograms and numbers of buckets and default sample size.

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 60

Page 57: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

GFCPSSTATS11 Package

• Hold table preferences on meta-data table keyed on RECNAME– DDL Trigger to set table preferences as table created– DML Trigger to set table preferences when metadata changed.

• DDL model also calls GFCPSSTATS11 package– Via meta-data, can suppress call to dbms_stats– Or only collect statistics if ‘stale’.

• So, no PeopleSoft application code change required.– Force collection of locked statistics – Catch exception when attempt to update locked statistics– http://blog.psftdba.com/2012/09/maintaining-optimizer-statistics-on.html

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 61

Page 58: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Temporary Records

• No point collecting statistics during maintenance window.

• Truncated at start of AE– But Truncate doesn’t clear statistics!!!

• Can only collect accurate statistics during process– %UpdateStats macro

• Recommendation:– Lock and Delete Optimizer Statistics– OPTIMIZER_DYMANIC_SAMPLING=4

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 62

Page 59: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Global Temporary Tables?

• Application Engine– Temporary table instances– State Records

• COBOL– Regular Table Record

• Consider using Oracle Global Temporary Table– Bot can’t do this for restartable AEs

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 63

Page 60: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

MOS Document References

• SQLT – [ID 215187.1]• Useful for detailed performance analyses of

individual SQL statements

• OS Watcher Black Box – [ID 301137.1]• Automates collection of OS-Level performance

and diagnostic metrics• Extensible scripting can include application-

specific information. (stay tuned)

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 64

Page 61: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Further Reading

• http://blog.psftdba.com• www.go-faster.co.uk• E-ORA Advice for the PeopleSoft Oracle

DBA [ID 1445965.1]– Although I have some reservations about some

of the content!

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 65

Page 62: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

TUXEDO APPLICATION SERVER SIZING

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 66

Page 63: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Application Server Sizing

• How many server processes should I configure?– It is very hard to answer that question with a

simply numeric answer.– Not too many.– Not too few.– It depends!

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 67

Page 64: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Application Server Sizing

• Too Few?– Queuing– All servers busy

• Too Many?– Run out of

memory/CPU• Paging to disk• Queue on run queue

– >= 10 per queue• IPC Queue Contention

– Overload database causing Application Server to back up

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 68

Page 65: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Detecting Application Server Queuing

• Queuing not reported in PPM due to bug

• Look instead at– application server

process service status• Event 302

– spawning.• Following chart derived

from this data

• Interrogate Tuxedo domain directly with tmadmin CLI with shell/batch script.– See http://

www.go-faster.co.uk/scripts/tuxmon.zip

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 69

Page 66: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Application Server Processes by Service over a week

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 70

Page 67: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Application Server Spawning

• Spawning for enabled when Min servers<Max servers– For PSAPPSRV, PSQRYSRV, PSBRKHND, PSSUBHND,

PSPUBHND• Idea is to adjust number of servers dynamically to meet

the demand• Spawning gets a bad press because

– Number of Min/Max servers not correctly configured– Fallacious belief that application server queuing is

universally bad• It isn’t. It can be the least worst option.

– Excessive spawning/recycling is a problemUKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 71

Page 68: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Recycle Count

• PSAPPSRV– Historically, the delivered value has varied between 1000 and 10000

in different versions of PeopleTools– It used to be used as a coarse method of controlling memory

consumption of application server processes– More effective to use MaxCacheMemory >= 500Mb

• PSQRYSRV– Entire query results sets copied into memory– A lower recycle count can be used to release memory

• Particularly on Windows

• Further Reading– Document ID 1457385.1

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 72

Page 69: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Application Server Sizing

• Avoid creating things that you don’t need!– PSSAMSRV – Only one or two are ever needed.– PSQCKSRV – Only used by for 3-tier Application

Designer sessions (and then only optional)

• Ensure enough connections are available– Turning off Jolt Pooling will require more JSHs

• Understand Application Server Memory Usage– My Oracle Support - Document ID 1457385.1

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 73

Page 70: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Avoiding Contention Tuxedo Queues

• Contention on IPC queues occurring if messages on queue and not all servers busy

• Recommendation– No more than 10 server processes/queue– Create multiple queues in a single domain

• Rather than multiple domains each with a single queue

– Need to manually set Bulletin Board sizing parameters in psappsrv.ubx file.

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 74

Page 71: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Unix IPC Message Sizing

• (This affects windows too!)• PeopleSoft Messages to Tuxedo typically

around 100-120Kb– application dependent – so you need to measure this

for your system– Default message size 64Kb (except AIX)– Messages larger than max message size (default ¾

queue size) written to and read from disk– Messages that ¾ fill queue also written to disk

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 75

Page 72: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

©2012 www.go-faster.co.uk 76UKOUG2012 - Performance Tuning for PeopleSoft Administrators

1,000

10,000

100,000

1,000,000

10,000,000

0 10 20 30 40 50 60 70 80 90 100

%Tile

Jolt

Mes

sag

e S

ize

(byt

es)

JOLT_BYTES_SEND JOLT_BYTES_RCVD

Page 73: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Unix IPC Message Sizing

• General Recommendation– Set queue size 256Kb

• Although, this will consume more shared memory. • ipcs shows queues that Tuxedo PrintQueue doesn’t!

– Set maximum message size 128Kb• Large PS/Query results will still ping to disk and

there is nothing you can do about it

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 77

Page 74: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Application Server – Integration Broker Considerations (Asynch)

• Isolate PUB/SUB processes by dedicating one or more domains to IB.

• DO NOT allow multiple domains to concurrently process the same service operations– For domain failover, use IB failover groups– For further isolation, use dedicated dispatchers– To Scale, use slave or template slave dispatchers

• PeopleSoft Integration Performance and Tuning for PeopleTools 8.50 [ID 1169053.1]

Page 75: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Integration Broker Monitoring

• Integration Broker Service Operations Monitor

• IB Profiling – runtime performance detail for both Synch and Asynch operations– Enable at both the Integration Gateway and

Application Server– Navigation: PeopleTools->Integration Broker-

>Service Operations Monitor->Statistics

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 79

Page 76: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Further Reading

• PeopleSoft for the Oracle DBA– Chapter 13

• Tuxedo Internals • This presentation from 2002 is based on PT7.5x

– http://www.go-faster.co.uk/bea_internals.pps

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 80

Page 77: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

WEB SERVER SIZING & CONFIGURATION

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 81

Page 78: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Web Server Characteristics

• Primary purpose is serialization/deserialization to build and serve presentation to browsers

• Maintains user session state• Tuning mostly involves correctly sizing the

JVM.• Scale horizontally by adding web instances

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 82

Page 79: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Web Server Sizing

• Tuning goal is to properly size JVMs, allowing for enough user sessions without extensive GC pauses.

• JVM size is set with Java start-up options (-Xmx, -Xmn)• Try to keep JVM size between 512M and 2048M

– depends on which JRE• Watch out for native heap

– -Xss to reduce thread stack size if necessary• Native heap limitations largely a non-issue in PT 8.51+

– 64-bit addressing• Use verbose GC logging to monitor the Garbage Collector

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 83

Page 80: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Web Server Logging

• GC logging (-verboseGC –XX:+PrintGCDetails -XX:+PrintGCTimeStamps)

– Provides timing and frequency of Java VM Garbage Collection cycles

– Useful for evaluating Java Heap sizing under load.

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 84

Page 81: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Web Server Configuration

• Timeouts can drastically affect Web Server performance and scalability

• Web Profile Cache settings and Timeouts are important– Saved States, State Discard Interval, Home Page Stale

Interval

• Consider a dedicated Web Instance for Integration Broker Gateway– Things like session affinity and Http keepalives don’t

matter as much as for the IB Gateway.UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 85

Page 82: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Further Reading

• Web/Network Infrastructure– E-PIA: Red Paper On Implementing Clustering

And High Availability For PeopleSoft [ID 612096.1]

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 86

Page 83: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

Conclusion

• It depends…

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 87

Page 84: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

QUESTIONS?Nullius in verba

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 88

Page 85: Performance Tuning for PeopleSoft Administrators David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk .

You know my methods,

apply them.A Study in Scarlet, Arthur Conan-Doyle

UKOUG2012 - Performance Tuning for PeopleSoft Administrators

©2012 www.go-faster.co.uk 89