maximizing the performance of the oracle e-business suite ahmed alomari applications performance...

71
Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Upload: jeremy-gibson

Post on 25-Dec-2015

221 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Maximizing the Performance of the Oracle E-Business Suite

Ahmed Alomari

Applications Performance Group

Oracle Corporation

Session id: 40191

Page 2: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Agenda

Architecture Application Services Tier

– Forms– Reports– Concurrent Manager– Apache

Mod PL/SQL Jserv/JVM

– Portal– Discoverer

Page 3: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Agenda (continued) Network Performance Data Server Tier

– 9iR2 New Features– New tablespace model

Application Tuning Q & A

Page 4: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Architecture

Java Server Pages (JSP)

Forms

Reports

Discoverer

Concurrent Manager

Servlet Engine

W

eb

Lis

ten

er

Portal Real Application Clusters (RAC)

Data Server Tier TNS (Net8)

JDBC (Thin)

PL/SQL Gateway

http

Application Tier

Clients

Page 5: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier

Forms– Deploy with socket mode for internal users:

connectMode=socket (appsweb.cfg)– Enable Forms Dead Client Detection

Value specified in minutes Terminates f60webmx processes for dead

clients. FORMS60_TIMEOUT=10

– Disable Forms Abnormal Termination Handler FORMS60_CATCHTERM=0

Page 6: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier

Forms– Upgrade to Forms Patchset 10 or higher

Forms patchset 7 (6.0.8.16.X) introduced a regression which affects scalability (bug 2269913). Results in Forms generating invalid SQL. Fixed in Forms patchset 10 (6.0.8.19.X).

Refer to MetaLink document 125767.1 for Forms patchset upgrades.

– Disable Cancel Query Set the Profile “FND: Enable Cancel Query” to No.

Page 7: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier

Forms– Ensure users are optimally utilizing the

professional Forms interfaces. Avoid Blind queries Provide selective criteria in Find windows and

LOVs. Avoid opening and closing forms across

transactions. Users which need to switch responsibility in

order to complete a business transaction should instead keep the relevant Forms open.

Page 8: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier

Forms (Tracing)– If the form is slow, or a specific flow in the Form

is slow, first generate a complete SQL trace using the Trace menu in Help-Diagnostics.

– If the SQL trace does not account for the majority of the response time experienced by the user, then generate a Forms Runtime Diagnostics (FRD) Trace.

Page 9: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier

Forms (Tracing – SQL Trace)

Page 10: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier

Forms (Tracing – FRD Trace)– Logon to Applications 11i with the following

parameters appended to the URL: play=&record=collect&log=/tmp/oeform.trc

– Navigate through the flows which you would like to trace.

– Exit from Oracle Applications completely.– Review the trace file from the application server

(/tmp/oeform.trc).

Page 11: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier

Reports– Ensure users provide selective parameters to

the standard Reports.– Review the Report output:

Number of rows returned to the report. Number of report pages.

– SQL Trace can be generated by enabling the “Enable Trace” flag in the Concurrent Program Definition Form.

Page 12: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier Reports (Tracing)

– If the SQL trace for the report does not account for the elapsed time of the request, then generate a Reports trace by appending tracing parameters the to command line.

– ar60run … … TRACEFILE=<file> TRACE_OPTS=(<trace options>) TRACEMODE=trace_replace|trace_append

– The following are the trace options:– TRACE_ALL : log all possible trace information in the trace file. (DEFAULT)– TRACE_APP : log trace information on all the report objects in the trace file.– TRACE_BRK : list breakpoints in the trace file.– TRACE_ERR : list error messages and warnings in the trace file.– TRACE_PLS : log trace information on all the PL/SQL objects in the trace file.– TRACE_PRF : log performance statistics in the trace file.– TRACE_SQL : log trace information on all the SQL in the trace file.– TRACE_TMS : enter a timestamp for each entry in the trace file.

Page 13: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier Reports (Trace Output)

Report: /u02/appl/fnd/11.5.0/reports/US/FNDSCURS.rdf Logged onto server: Username: . . . . . . . .

23:59:57 APP ... ( Generic Graphical Object B_SECURITY_GROUP_NAME123:59:57 APP ... ) Generic Graphical Object B_SECURITY_GROUP_NAME123:59:57 APP ... ( Generic Graphical Object B_USER_NAME1. . . . . . . . +-------------------------------------+ | Report Builder Profiler statistics | +-------------------------------------+

TOTAL ELAPSED Time: 2243.04 seconds

Reports Time: 1196.62 seconds (53.34% of TOTAL)

ORACLE Time: 1046.41 seconds (46.65% of TOTAL)

UPI: 1046.00 seconds SQL: 0.40 seconds

TOTAL CPU Time used by process: 904.71 seconds

Page 14: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier Concurrent Manager

– Avoid enabling an excessive number of standard or specialized managers.

– Use specialization rules and work shifts to bind specific jobs to specific time windows. Helps avoid scheduling resource intensive batch

requests during peak activity.– For jobs which spawn parallel workers such as

Auto Invoice or Payroll, set the sleep time of the Conflict Resolution Manager (CRM) to null (i.e. 10 seconds). The default value is 60 seconds.

Page 15: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier

Concurrent Manager– Database Resource Manager Integration

Define Resource Consumer Groups and associate specific concurrent programs with a resource group.

Allows an administrator to constrain the amount of CPU resources used by a concurrent program.

Resource Groups can also be defined for online users using the profile “FND: Resource Consumer Group”.

Page 16: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier Concurrent Manager

– Transaction Managers Used for Inventory Transactions as well as other

synchronous online processing. Ensure enough transaction managers exist to service the

request load. Set the profile “Concurrent:Wait for Available TM” to 1

(second). Set “TP:INV Transaction processing mode” to “On-line

processing” for small inventory requests from the UI. Set the sleep time on the transaction managers to a low

number (< 5 seconds) for high volume requests. Transaction Managers can also be traced.

Page 17: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier Concurrent Manager (Enabling Trace)

Page 18: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier Apache

– On UNIX, Apache is process based (httpd), and mods such as mod PL/SQL run within the process address space of the httpd processes.

– On Windows, Apache is multi-threaded (Apache.exe).– Tune the number of processes and number of clients

(httpds.conf): MinSpareServers 5 MaxSpareServers 10 StartServers 5 MaxClients 512

Page 19: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier Apache

– Minimize levels of logging (httpds.conf): LogLevel warn SSLLogLevel warn

– Enable Caching of non-HTML resources including images, style sheets, and Java script. Caches content in the browser cache.

Reduces network round-trips (non SSL) Reduces network bandwidth utilization (SSL)

Included in AutoConfig templates in 11.5.8.

Page 20: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier

Apache – Enable Caching of non-HTML resources (httpd.conf

or apps.conf)

<Directory "<physical_path_corresponding_to_the_alias_/OA_HTML/>">

#enable the generation of the Expires header for files under /OA_HTML/

ExpiresActive On

#expire images one month after last client access

ExpiresByType image/gif "access plus 1 month"

#expire stylesheets one week after the last client access

ExpiresByType text/css "access plus 1 weeks"

#expire javascript libraries one day after the last client access

ExpiresByType text/javascript "access plus 1 days“

ExpiresByType application/x-javascript "access plus 1 day"

</Directory>

Page 21: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier

Apache – Review Apache Access Log file to ensure images

are being satisfied from the browser cache. Http code 200 (request for document) Http code 304 (request for time stamp)

130.35.127.106 - - [23/Oct/2002:19:00:21 -0700] "GET /OA_MEDIA/FNDINVDT.gif HTTP/1.1" 200 821130.35.127.106 - - [25/Oct/2002:14:38:23 -0700] "GET /OA_MEDIA/FNDINVDT.gif HTTP/1.1" 304 -130.35.127.106 - - [25/Oct/2002:14:38:23 -0700] "GET /OA_MEDIA/FNDWATHS.gif HTTP/1.1" 200 190130.35.127.106 - - [25/Oct/2002:14:38:23 -0700] "GET /OA_MEDIA/FNDREDPT.gif HTTP/1.1" 200 70130.35.127.106 - - [25/Oct/2002:14:39:23 -0700] "GET /OA_HTML/OA.jsp?page=/oracle/apps/icx/por/rcv/pages/ReceivingHomePage&OAHP=ICXPOR_MENU&OASF=ICXPOR_RCV_HOME_PAGE&dbc=ap107fam_ipdev11i&language_code=US&transactionid=70A5819F04C0F411 HTTP/1.1" 200 14130.35.127.106 - - [25/Oct/2002:14:39:34 -0700] "GET /servlets/PoolMonitor?jvm HTTP/1.1" 200 7954130.35.127.106 - - [25/Oct/2002:14:41:03 -0700] "GET /OA_HTML/US/ICXINDEX_ipdev11i.htm HTTP/1.1" 304 -130.35.127.106 - - [25/Oct/2002:14:41:03 -0700] "GET /OA_MEDIA/logo.gif HTTP/1.1" 304 -130.35.127.106 - - [25/Oct/2002:14:41:03 -0700] "GET /OA_MEDIA/appslogo.gif HTTP/1.1" 304 -130.35.127.106 - - [25/Oct/2002:14:41:03 -0700] "GET /OA_MEDIA/FNDJLFRL.gif HTTP/1.1" 304 -130.35.127.106 - - [25/Oct/2002:14:41:03 -0700] "GET /OA_MEDIA/FNDINVDT.gif HTTP/1.1" 304 -130.35.127.106 - - [25/Oct/2002:14:41:03 -0700] "GET /OA_MEDIA/FNDJLFRR.gif HTTP/1.1" 304 -

Page 22: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier

Apache Mod PL/SQL– Configure a dedicated mod PL/SQL Listener

Improves performance and scalability Significantly reduces overall number of

sessions/connections. Reduces latency of web requests. Improves cursor sharing.

Documented in “Oracle 9i Application Server Using the PL/SQL Gateway Release 1 (v1.0.2.2)” http://technet.oracle.com/docs/products/ias/doc_library/

1022doc_otn/apps.102/a90099/apptroub.htm#634180

Page 23: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier

Apache Mod PL/SQL (dedicated listener)

1. For the main Listener running on Port 7000, edit the file $IAS_HOME/Apache/modplsql/cfg/plsql.conf as follows:

Disable the mod PL/SQL service from the main listener by commenting out the lines between the two Location parameters as follows:

# <Location /pls> # SetHandler pls_handler # Order deny,allow # Allow from all # </Location>

Comment out the following line as follows:

# LoadModule plsql_module /d1/ias/Apache/modplsql/bin/modplsql.so

Page 24: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier

Apache Mod PL/SQL (dedicated listener)

2. Configure the main listener to forward all mod_plsql requests to the dedicated mod PL/SQL listener by adding the following line:

ProxyPass /pls/ http://sechost.us.oracle.com:8888/pls/

For the dedicated mod PL/SQL Listener running on Port 8888, configure each DAD to override the default CGI environment variables in order to allow redirects. Edit the file $IAS_HOME/Apache/modplsql/cfg/wdbsvr.app and add the following line for each DAD:

cgi_env_list=SERVER_NAME=mainhost.us.oracle.com,SERVER_PORT=7000,HOST=mainhost.us.oracle.com:7000

Page 25: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier Apache Jserv / JVM

– Minimize Jserv logging log=true log.channel.warning=true log.file=/d1/ias/Apache/Jserv/logs/jserv_7000.log

– Disable auto reload in production environments: autoreload.classes=false autoreload.file=false

– Use Jserv Auto Load Balancing Configure Multiple Zones. Provides higher availability and improves scalability.

Page 26: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier

Apache Jserv / JVM– Upgrade to the latest JDK (1.3.1_09).– Do not disable hotspot or the JIT (i.e.

–DCOMPILER=NONE or –Xint).– Enable verbose GC in order to optimally tune the

heap sizes based on the GC traffic. Minor Collections Major Collections Elapsed Time of GC

Page 27: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier

Apache Jserv / JVM– Enable Verbose GC Output

Overload wrapper.bin with a shell wrapper in order to redirect stdout to a file.

Existing:wrapper.bin=/d13/jdk/jdk1.3.1/bin/java

Change To:Wrapper.bin=/d13/scripts/java.sh

java.sh:=========

/d13/jdk/jdk1.3.1/bin/java -verbosegc $* >> /d2/logs/java.log

Page 28: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier

Apache Jserv / JVM (Verbose GC Output)

/d2/logs/java.log:

[GC 30460K->1369K(510848K), 0.1135695 secs][Full GC 15135K->1686K(510848K), 0.2700469 secs][GC 32123K->2131K(510848K), 0.0203634 secs][GC 32595K->2130K(510848K), 0.0113639 secs][GC 32593K->2171K(510848K), 0.0129179 secs][GC 32635K->2419K(510848K), 0.0567306 secs][GC 32881K->3157K(510848K), 0.2906981 secs][GC 33620K->3197K(510848K), 0.0320023 secs][GC 33661K->3218K(510848K), 0.0103013 secs][GC 33674K->3309K(510848K), 0.0487887 secs][GC 33769K->3532K(510848K), 0.0531514 secs][GC 33983K->3784K(510848K), 0.0552549 secs][GC 34248K->4056K(510848K), 0.0624969 secs][GC 34520K->4404K(510848K), 0.0555575 secs][GC 34868K->4828K(510848K), 0.0587044 secs][GC 35292K->5242K(510848K), 0.0945290 secs]

Page 29: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier

Apache Jserv / JVM– Utilize the verbose GC output to tune the JVM

heaps (-Xmx and –Xms) accordingly.– Review the frequency of collections, especially

major collections (i.e. Full GC). Start with:

-Xms256M and –Xmx512M

-XX:NewSize=60M -XX:MaxNewSize=120M

Page 30: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier

Apache Jserv / JVM– Process Identification (V$SESSION)

Specify the property –DCLIENT_PROCESSID in the JVM startup shell script.

Existing:wrapper.bin=/d13/jdk1.3.1/bin/java

Change To:Wrapper.bin=/d13/scripts/java.sh

java.sh:=========#!/bin/sh/d13/jdk1.3.1/bin/java -verbosegc -DCLIENT_PROCESSID=$$ $* >> /d2/logs/java.log

Page 31: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier

Apache Jserv / JVM– Process Identification (V$SESSION)

Allows you to map the JDBC session from v$session to a particular JVM process.

SID MACHINE PROCESS MODULE LOGON---- ------------------------- ------------ ------------------ ----------------- 41 aptier1.us.oracle.com 28806 JDBC Thin Client 09/07/03 23:26:43 42 aptier2.us.oracle.com 1723 JDBC Thin Client 09/07/03 23:27:01 43 aptier3.us.oracle.com 3201 JDBC Thin Client 09/07/03 23:28:15 44 aptier1.us.oracle.com 28807 JDBC Thin Client 09/07/03 23:29:17. . . . . . . . . . . . . .

aptier1{apps_a}-> ps -ef | grep 28806

apps_a 28806 28561 0 23:26:39 pts/20 0:00 /bin/sh ./java.shapps_a 28807 28806 53 23:26:40 pts/20 8:55 /jdk1.3.1_09/bin/../bin/sparc/native_threads/java

Page 32: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier Java Server Pages (JSPs)

– Precompile the JSPs to avoid dynamic compilation. Users experience poor performance for the initial page

loads. Potential deadlocks if multiple users attempt to compile

the same JSP. Potential JVM death due to OutOfMemoryException

during concurrent compilation. MetaLink Document 215268.1 provides the instructions

and the patch reference for an automated script to perform the precompilation. ojspCompile Script

Page 33: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier

Java Server Pages (JSPs)– Use a separate JVM to perform the JSP

compilation.

root.properties:

servlet.oracle.jsp.JspServlet.initArgs=translate_params=true, unsafe_reload=false, page_repository_root=/appl_top/115/common/html/jsp/pagecache, alias_translation=true,developer_mode=false, javaccmd=/usr/jdk131/bin/javac,send_error=true

Page 34: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier

Portal Tuning– Tune the number of content fetcher threads for

PPE (poolSize). Default is 25.– Adjust the fetch request timeout (requesttime).– Adjust the fetch connection request timeout (stall).

zone.properties:

servlet.page.initArgs=poolSize=50 servlet.page.initArgs=requesttime=200 servlet.page.initArgs=stall=100

Page 35: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier

Portal Tuning– Ensure that the mod PL/SQL cache is enabled and

sized appropriately:

$APACHE_TOP/modplsql/cfg/cache.cfg:

[PLSQL Cache]enabled=yestotal_size=100000000cleanup_size=75000000cleanup_interval=86400;

[Cookie Cache]enabled=yestotal_size=25000000cleanup_size=15000000cleanup_interval=86400max_size = 0

Page 36: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Services Tier Discoverer 4i Viewer Tuning

– Disable Query Prediction by setting QPPEnable=0 in pref.txt.– Set ObjectsAlwaysAccessible=1 to avoid extra workbook

SQL validation, and related dictionary SQL.– Set the Query Governor option “Limit retrieved query data to:”

to 100 rows.– Set the option “After opening a worksheet:” to “Don’t run

query.”– Ensure Custom workbooks define mandatory parameters.

Page 37: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Network Performance Network performance is often neglected. Networks with poor latency or low bandwidth

impacts user response time. Can also impact concurrent programs if the

network between the application tier and data server tier is not optimal.

A direct switch should be used between the application tier and data server tier– Latency should ideally be ~2-3ms per round-trip.

Page 38: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Network Performance Use the ping command to determine the latency of requests. Vary

the packet size to determine the average latency. Do not use the default ping packet size of 32 bytes.

D:\>ping ap626sun.us.oracle.com -l 2048

Pinging ap626sun.us.oracle.com [139.185.128.27] with 2048 bytes of data:

Reply from 139.185.128.27: bytes=2048 time=371ms TTL=252Reply from 139.185.128.27: bytes=2048 time=330ms TTL=252Reply from 139.185.128.27: bytes=2048 time=361ms TTL=252Reply from 139.185.128.27: bytes=2048 time=360ms TTL=252

D:\>ping ap626sun.us.oracle.com -l 512

Pinging ap626sun.us.oracle.com [139.185.128.27] with 512 bytes of data:

Reply from 139.185.128.27: bytes=512 time=231ms TTL=252Reply from 139.185.128.27: bytes=512 time=210ms TTL=252Reply from 139.185.128.27: bytes=512 time=231ms TTL=252Reply from 139.185.128.27: bytes=512 time=220ms TTL=252

Page 39: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Network Performance Use the ping command to determine the latency between the

application server and the data server. Use a packet size of 2K since this the default size for SQL*Net traffic.

aptierhost{applmgr}-2-> ping -s dbtierhost 2048

PING dbtierhost.us.oracle.com: 2048 data bytes2056 bytes from dbtierhost.us.oracle.com (144.25.76.250): icmp_seq=0. time=1. ms2056 bytes from dbtierhost.us.oracle.com (144.25.76.250): icmp_seq=1. time=1. ms2056 bytes from dbtierhost.us.oracle.com (144.25.76.250): icmp_seq=2. time=1. ms2056 bytes from dbtierhost.us.oracle.com (144.25.76.250): icmp_seq=3. time=1. ms2056 bytes from dbtierhost.us.oracle.com (144.25.76.250): icmp_seq=4. time=1. ms2056 bytes from dbtierhost.us.oracle.com (144.25.76.250): icmp_seq=5. time=1. Ms

---- dbtierhost.us.oracle.com PING Statistics----6 packets transmitted, 6 packets received, 0% packet lossround-trip (ms) min/avg/max = 1/1/1

Page 40: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Network Performance

Measure the sustained bandwidth on both the client network (i.e. desktops) as well as the application-tiers.

Use traceroute utility to determine number of hops and impact on latency.

Monitor network statistics including packet rates, error rates, collisions, etc.. using tools such as netstat –i.

Page 41: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Data Server Tier

Refer to the MetaLink document 216205.1 “Database Initialization Parameters and Configuration for Oracle Applications 11i”.

– Ensure mandatory parameters are set correctly. Optimally configure the buffer cache and shared pool as per the

workload and the number of users:– [typical configuration for 2,000 Apps users]

db_block_buffers=800,000 shared_pool_size=2000M

A poorly sized buffer cache results in excessive buffer gets and physical I/O.

A poorly sized shared pool results in library cache and shared pool latch contention due to reloads and lack of space.

Page 42: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Data Server Tier Quick I/O improves performance and scalability

by simulating raw devices, and avoiding file system cache traffic for the DB files.

Use locally managed temp files (uniform) for the temporary tablespace.

Install Stats Pack and use spauto.sql to automate hourly snapshots.

Stats Pack reports can be used to trend transaction rates and business flows.

Page 43: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Data Server Tier

Stats Pack Report (Instance Summary)STATSPACK report for

DB Name DB Id Instance Inst Num Release Cluster Host------------ ----------- ------------ -------- ----------- ------- ------------GSIAP 317772662 gsi1ap 1 9.2.0.1.0 YES agsidbs1

Snap Id Snap Time Sessions Curs/Sess Comment ------- ------------------ -------- --------- -------------------Begin Snap: 503400 11-Nov-02 11:00:01 ####### .0 End Snap: 503405 11-Nov-02 16:00:04 ####### .0 Elapsed: 300.05 (mins)

Cache Sizes (end)~~~~~~~~~~~~~~~~~ Buffer Cache: 5,313M Std Block Size: 8K Shared Pool Size: 2,864M Log Buffer: 1,024K

. . . . . . . . . . . .

Page 44: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Data Server Tier

Stats Pack Report (Instance Summary)Load Profile~~~~~~~~~~~~ Per Second Per Transaction --------------- --------------- Redo size: 462,767.56 26,266.16 Logical reads: 54,537.81 3,095.50 Block changes: 3,237.12 183.74 Physical reads: 2,403.22 136.40 Physical writes: 272.19 15.45 User calls: 518.96 29.46 Parses: 223.29 12.67 Hard parses: 1.26 0.07 Sorts: 199.15 11.30 Logons: 1.85 0.11 Executes: 1,566.48 88.91 Transactions: 17.62

% Blocks changed per Read: 5.94 Recursive Call %: 88.46 Rollback per transaction %: 3.18 Rows per Sort: 102.78. . . . . . . . . . . .

Page 45: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Data Server Tier Stats Pack Report (Instance Summary)Instance Efficiency Percentages (Target 100%)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Buffer Nowait %: 99.90 Redo NoWait %: 100.00 Buffer Hit %: 96.03 In-memory Sort %: 99.96 Library Hit %: 99.87 Soft Parse %: 99.44 Execute to Parse %: 85.75 Latch Hit %: 99.82Parse CPU to Parse Elapsd %: 69.57 % Non-Parse CPU: 97.34

Shared Pool Statistics Begin End ------ ------ Memory Usage %: 90.55 76.14 % SQL with executions>1: 66.70 75.37 % Memory for SQL w/exec>1: 60.86 71.08

Top 5 Timed Events~~~~~~~~~~~~~~~~~~ % TotalEvent Waits Time (s) Ela Time-------------------------------------------- ------------ ----------- --------db file sequential read 16,187,270 134,274 31.12CPU time 110,764 25.67global cache cr request 21,410,811 66,129 15.33db file scattered read 3,184,765 23,571 5.46KJC: Wait for msg sends to complete 10,722,532 20,446 4.74

Page 46: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Data Server Tier Stats Pack Report (Wait Events) Avg Total Wait wait WaitsEvent Waits Timeouts Time (s) (ms) /txn---------------------------- ------------ ---------- ---------- ------ --------db file sequential read 16,187,270 0 134,274 8 51.0global cache cr request 21,410,811 56,241 66,129 3 67.5db file scattered read 3,184,765 0 23,571 7 10.0KJC: Wait for msg sends to c 10,722,532 194,069 20,446 2 33.8row cache lock 74,583 5,842 17,796 239 0.2wait for unread message on b 73,977 4,624 13,054 176 0.2SQL*Net more data to client 6,021,483 0 8,873 1 19.0enqueue 114,204 19,898 7,427 65 0.4buffer busy global CR 516,382 18 4,735 9 1.6buffer busy waits 434,054 192 3,857 9 1.4direct path read 1,239,648 0 3,226 3 3.9inactive session 1,774 1,774 1,784 1006 0.0latch free 242,171 19,203 1,694 7 0.8db file parallel read 121,670 0 1,280 11 0.4direct path write 1,270,008 0 1,110 1 4.0log file sync 604,002 244 1,097 2 1.9SQL*Net message from dblink 20,365 0 1,080 53 0.1

Page 47: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Data Server Tier Review Latch Free waits in the Stats Pack reports. Latch contention is often a symptom due to a legitimate

problem such as non-sharable SQL, sub-optimal SQL which performs full table or full index scans, dynamic object creation/removal, etc..

Review the latch Statistics section of the Stats Pack report to determine the hot latches.

Enable tracing for a few of the sessions waiting on the latch as well as the holder to determine the actual cause.

Page 48: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Data Server Tier Stats Pack Report (Expensive SQL) CPU Elapsd Physical Reads Executions Reads per Exec %Total Time (s) Time (s) Hash Value--------------- ------------ -------------- ------ -------- --------- ---------- 3,413,015 1 3,413,015.0 7.9 1970.29 6716.03 976039043Module: ALECDCSELECT distinct ooha.order_number , fu.user_name , rac.customer_name , to_char(wctc.last_update_date, 'DD-MON-YY hh24:mi') , DECODE(SUBSTR(wctc.comments, 1, 21), 'NOTE: This Order-Line', wctc.process_flag || ': manually screened', DECODE(wctc.process_flag ,'101','101: host u

2,229,632 1 2,229,632.0 5.2 2115.49 35448.22 1280227044Module: ALECDCselect distinct pv.segment1 , nvl(pv.vendor_name_alt, pv.vendor_name) , ai.invoice_num , hr.name , '[email protected]' from po_vendors pv , ap_invoices_all ai , ap_holds_all ah , hr_organization_units hr where ai.payment_status_flag||''='Y' and

1,990,002 1 1,990,002.0 4.6 2321.34 23934.41 4063073269Module: OKILOADDRBEGIN OKI_REFRESH_PUB.REFRESH_ADDRS( :errbuf, :rc ); END;

Page 49: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Data Server Tier Monitor CPU and Memory Utilization Monitor paging Monitor I/O statistics, including service times. Review Stats Pack reports and correlate top

SQL to the business flows. Review expensive custom SQL

Page 50: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Data Server Tier Gathering Statistics

– Do not gather statistics excessively on entire schemas or the entire database such as nightly or weekly.

– Do not gather statistics on permanent objects during peak intervals. Gathering statistics invalidates cursors Gathering statistics requires dictionary and object

level locks. Plans are not likely to change if the data distribution

has not changed.

Page 51: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Data Server Tier Gathering Statistics

– For tables which are growing at a rapid rate, gather statistics only on those tables.

– Use only FND_STATS or the Gather Schema and Gather Table Statistics Concurrent Programs Do NOT USE the analyze nor dbms_stats command

directly. It is not supported, and results in sub-optimal plans.

– Review the table and index statistics for the objects which appear in the top SQL section of Stats Pack.

Page 52: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Data Server Tier Verifying the Statistics SQL> set serveroutput onSQL> exec apps.fnd_stats.verify_stats ('ONT','OE_ORDER_LINES_ALL');===================================================================================================Table OE_ORDER_LINES_ALL===================================================================================================last analyzed sample_size num_rows blocks10-28-2002 21:48 2607722 26077220 2385380 Index name last analyzed num_rows LB DK LB/key DB/key CF----------------------------------------------------------------------------------------------------OE_ORDER_LINES_N1 10-28-2002 21:10 25576780 91790 263415 1 29 7652470OE_ORDER_LINES_N10 10-28-2002 21:10 19823770 75010 256561 1 27 7130580. . . . . . . . . .OE_ORDER_LINES_N2 10-28-2002 21:10 25728720 107860 1470664 1 12 18595490OE_ORDER_LINES_N3 10-28-2002 21:10 26092490 80870 10468 7 2184 22866190OE_ORDER_LINES_N5 10-28-2002 21:10 0 0 0 0 0 0OE_ORDER_LINES_N6 10-28-2002 21:10 155669 592 152764 1 1 79814OE_ORDER_LINES_N7 10-28-2002 21:10 82116 310 5030 1 6 34641OE_ORDER_LINES_N9 10-28-2002 21:10 2185597 8988 1795102 1 1 1467499OE_ORDER_LINES_U1 10-28-2002 21:10 26056680 85380 26056680 1 1 15242720----------------------------------------------------------------------------------------------------Histogram StatsSchema Table Name Status last analyzed Column NameONT OE_ORDER_LINES_ALL present 28-10-2002 21:48 OPEN_FLAG

Page 53: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Data Server Tier 9iR2 New Features

– Auto memory manager Pga_aggregate_target can be set to tune the PGA for the entire

instance. Automatically tunes hash area and sort area sizes Returns unused memory to the OS.

– System Managed Undo No more ORA-1555s!!! Set undo_retention to the length of the longest running request.

– Auto Segment Tablespace Management No need to manually set Freelist, freelist groups, pctused. A

bitmap is used to automatically scale the segment related parameters.

Page 54: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Data Server Tier 9iR2 New Features

– PL/SQL Native Compilation Improves PL/SQL execution performance. Improves scalability by removing a lot of stress off of

the shared pool.

Page 55: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Data Server Tier

New Tablespace Model for the eBusiness Suite:– Consolidate the number of tablespaces from 400 tablespaces

to 10.– Optimizes performance via the wide stripe model.– Ideal for customers migrating to RAC or migrating to raw

devices.– Uniform extents, locally managed

No more fragmentation!– Migration script can be used to migrate a schema at a time.

Page 56: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Data Server Tier New Tablespace Model for the eBusiness Suite:

– Objects are classified by object type and access patterns:

Transaction tables Transaction indexes Reference/SEED Interface Summary Management Archive NoLogging Queue Media Temporary Undo System Total = 12 Tablespaces

Page 57: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Data Server Tier Email [email protected] for information

on the migration guide and utility. Migration timings: (complete migration)

– 1.2 Terabyte customer DB 20 hours New size of DB after migration (850 GB).

– 250 GB customer DB 4 hours New size of DB after migration (150 GB).

Page 58: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Tuning

Review the Metalink note “Recommended Performance Patches for the Oracle E-Business Suite”, 244040.1.– Recommended performance patches for all the

modules are consolidated in this note.

Page 59: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Tuning Workflow

– When starting background engines via Concurrent Manager, set the Process Stuck parameter to No.

– Start a separate background engine to handle stuck processes with a very low frequency such as once or twice a day.

– Use deferred activities to improve online response times and facilitate asynchronous processing for flows such as Scheduling, PO Document Approval, etc..

Page 60: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Tuning Order Management

– OM Pack H contains numerous performance fixes including Pricing performance fixes.

– OM Bulk Import (Pack H) ~20,000 lines per hour per worker.

– Ensure that the profile “OM: Debug Level” is set to zero (0).

– Ensure that the profile “QP: Debug” is set to “N”.

Page 61: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Tuning Payroll

– Tune the number of threads, chunk size and the buffer sizes (pay_action_parameters): THREADS=25 CHUNK_SIZE = 20 BAL BUFFER SIZE=550 EE BUFFER SIZE =550 RR BUFFER SIZE =550 COST BUFFER SIZE=550

– Set threads to 1.5-2.0 times the number of data server processors.

– Set LOW_VOLUME=N to enable optimal plans.

Page 62: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Tuning OA Framework Applications

– Upgrade to 5.7 if running an earlier release of OA Framework. Refer to MetaLink document 139863.1 (“Configuring and

Troubleshooting the Self Service Framework with Oracle Applications”).

– Pool Monitor can be used to monitor the resource utilization Application Module Pool

View Objects Memory Utilization JVM Properties https://<hostname>/servlet/OAAppModPoolMonitor

Page 63: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Tuning OA Framework Applications (Pool Monitor)

Page 64: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Tuning OA Framework Applications (Pool Monitor)

Page 65: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Tuning (OA)

Tracing Self-Service Applications– Set profile FND : Diagnostics to Yes at user level – Login to Self Service as the above user– Click on Diagnostics icon at the top of page– Select ‘Set Trace Level’ and click Go– Select the desired trace level and click Save– Perform the activity that you want to trace– Exit application

Page 66: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Tuning (OA)

Page 67: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Tuning AOLJ Connection Pool (dbc configuration)

– $FND_TOP/secure/<hostname_sid>.dbc Number of DB connections used by the Java based Self-

Service Applications. FND_JDBC_MAX_CONNECTIONS: 300

Tune FND_JDBC_MAX_CONNECTIONS as per the amount of transaction concurrency (per JVM).

AOLJ automatically decays idle connections and resizes the pool.

Disable sanity checks in production environments FND_JDBC_USABLE_CHECK=false FND_JDBC_PLSQL_RESET=false

Page 68: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Tuning AOLJ Connection Pool (dbc configuration)

– Patch 2566387 allows the use of service names in the configuration: New dbc parameter APPS_JDBC_URL

Used in place of DB_HOST, DB_NAME, DB_PORT

Useful for automatic connection load balancing

APPS_JDBC_URL=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=ap201ops)(PORT=1526))(ADDRESS=(PROTOCOL=TCP)(HOST=ap202ops)(PORT=1526)))(CONNECT_DATA=(SERVICE_NAME=opsperf)))

Page 69: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Tuning Connection Pool Status (AoljDbcPoolStatus.jsp)

Page 70: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Application Tuning Connection Pool Status

Page 71: Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation Session id: 40191

Reminder – please complete the OracleWorld online session survey

Thank you.