Professional Documents
Culture Documents
Kanda Session Perf PDF
Kanda Session Perf PDF
Kandasamy Nainamalai
Senior Principal Software Engineer - Applications Technology Group
1 Applications Architecture
2 Defining & Isolating issue
3 How to approach a performance issue
4 SQL Trace and TKPROF output
5 AWR/Statspack Report
6 Best Practices – Maximizing the performance
Oracle Applications
Architecture
• 3-tier architecture
– Database Tier
– Application/Middle Tier
– Desktop Tier
What is slow?
1. The entire system is slow.
2. A subsystem is slow:
- Forms-Based Applications
- Web-Based Applications
- Concurrent Manager
1. A particular process is slow.
• When is it slow?
– Month end/year end |
– Peak hours | Concurrency, due to Load (or) H/W is not sized.
– All the time |
• Was it working fine earlier?
– All of a sudden
• List out recent changes
– Patch, Gather Schema, New RAC-node/modules/users, Data load, OS, Network/DNS
– Deteriorated over a period
• Who all are affected?
– All users
– Specific to some module
How to Approach a
Performance Issue
• Desktop
– Although it’s a thin client; browser uses Java for the presentation Layer.
– It requires some resource at the Desktop.
– Check if there’s enough resource CPU/RAM
– Ensure that no heavy applications are running when accessing
applications.
• Concurrent Manager
– Concurrent jobs are CPU intensive.
– Hence ensure enough resource CPU/RAM is available on the DB tier.
– Check RAC & PCP configuration.
– Check concurrent manager definition for Sleep time & Cache are set correctly
– Check resource-intensive batch requests are scheduled during peak hours. ( if yes, Separate
manager for long running process with less number of managers)
– Check there are short running requests waiting for a longer time to process (Resolution: create
Specialized Managers)
– Check Fnd_concurrent_requests & Processes are purged & defragmented regularly.
– Avoid enabling an excessive number of standard or specialized managers.
– Note 1057802.1 Best Practices for Performance for Concurrent Managers
• Forms Server
– Memory Intensive. Ensure sufficient RAM,Swap & CPU.
– Check Sar & top (look for spinning f60webmx)
– Check FORMS60_CATCHTERM FORMS_RECORD_GROUP_MAX
– Check if Debug/FRD enabled.
– Check load balancing enabled and works effectively.
– Latest Forms Patch set level with IO patches.
– Servlet Vs Socket Mode
• Applications
– How many concurrent users are there?
– What are all the modules used?
– Any resource-intensive module is used.
– When was gather schema statistics request run last?
– Diagnostics profiles are enabled ; this will consume lots of resource.
– Sign on Audit is disabled if not needed.
– Audit on other tables have been enabled (additional overhead)
– Purging is done periodically.
• Database
– DB processes are basically CPU Intensive.
– Check adequate resource (CPU/RAM) is available.
– Monitor Sar/vmstat output (first thing to do)
– If Wio is high then need to check I/O setup & SQL queries
– If CPU is high then check for CPU-intensive queries.
– Monitor top OS process at OS level
– Top (HP) / prstat (Sun) / ps aux (AIX)
– init.ora setup (Refer note 174605.1 )
– Version of the Database & performance patch applied.
– AWR / Statspack
• To generate DB trace if web pages are slow. There are two options.
1. Set Profile Option “FND: Diagnostics” to Yes
2. Alternative: Profile Option called ‘Initialization SQL Statement – Custom’
• Profile Option :
Initialization SQL Statement - Custom
• Can always be used, e.g.:
– Concurrent Programs
– Background processes like Workflow
– ...
• Set on User level only
• SQL code will execute for each new DB session which it initialized for an application
user
• SQL Statement for a level 12 trace:
begin fnd_ctl.fnd_sess_ctl ('','','TRUE','TRUE','LOG','ALTER
SESSION SET tracefile_identifier=''MYTRACE'' EVENTS=''10046 TRACE
NAME CONTEXT FOREVER, LEVEL 12'''); end;
AWR/Statspack Report
-------------------------------------------------------------
• Forms Server
– Sufficient resource RAM & SWAP available
– Spinning of forms process
• set FORMS_RECORD_GROUP_MAX=10000 (Doc ID 745711.1)
• Cancel Query “FND: Enable Cancel Query” to ‘No’
• Tweak FORMS60_CATCHTERM & FORMS_CATCHTERM
– Servlet Vs Socket Mode https://blogs.oracle.com/stevenChan/entry/which_is_better_forms_servlet_or_socket_mode
• Note 384241.1 – Using Forms Socket Mode with Oracle E-Business Suite Release 12
• Applications
– Gather schema statistics collected at regular interval with 10 – 40 %
– 11g Database , Apply Apps Patch 16410424 (12.1.x) 16410424 (12.0.x) 14707975 (11.5.10) to speed to Gather schema Stats.
Leave % as null (Doc ID 1586374.1)
– Diagnostics profiles/FRD/Traces are disabled if not needed.
– Hardware Sizing.
– Sign-on Audit & Audit tables are disabled if not needed.
– Purge & De-fragment interface/transaction tables periodically. (Note 752322.1)
• Purge portal is available in OAM that can be used to purge Apps.
• Network
– Audit Network usage.
– Tool to help identify the source of the problem
• Oracle E-Business Suite Network Utilities: Best Practices [ID 556738.1]
– Note 967992.1 – Symmetrical Network Acceleration with Oracle E-Business Suite Release 12
– Note 786582.1 – Performance Degradation in Forms in R12 When not Using Swan Color Scheme
• Web Tier (OC4J, Apache & Jserv)
– Ensure heapsize is set properly (Doc ID 362851.1 )
– Tune s_oacore_jvm_start_option (R12) (Doc ID 362851.1)
• $ grep s_oacore_jvm_start_option $CONTEXT_FILE (OS command to check it out)
– Tune oacore_nprocs( R12)
– Tune ApJServGroup OACoreGroup in jserv.properties (R11i )
• JVM: Guidelines to setup the Java Virtual Machine in Apps Ebusiness Suite
11i and R12 (Doc ID 362851.1).
• Forms Process (FRMWEB) Consumes 100% of CPU in Oracle Applications
R12 (Doc ID 745711.1)
• Best Practices for Gathering Statistics with Oracle E-Business Suite (Doc ID
1586374.1)