Beruflich Dokumente
Kultur Dokumente
com
Agenda
Oracle R12 E-Business Suite Performance Tuning Focus on Methodology Best Practices Holistic Tuning Approach
Methodology
Load testing before, during, and after Go-Live Functional Requirements and Testing Map the Business and Functional to the Technical Environment Business people think different than technical people Goal: Unify as one to resolve tuning issues (Method R) Stress Testing Integration Testing and Unit Test
during and post-Go Live to optimize performance and availability Fact: you really do not know the true performance until you test! Tools for Load testing: Oracle 11g Real Application Test (RAT) Suite excellent for database tier Oracle 10g/11g Application Management Pack (AMP) useful for measuring application tier performance metrics.
development and technical teams as soon as possible in the deployment process to reduce bottlenecks in performance. Establish stake holders to review and test requirements from functional to tech teams Dependent on business requirements such as modules deployed (eg: AP, AR, GL for Oracle Financials) to really understand what to test and measure for performance tuning!
How to Tune?
Knowing is half the battle!
Start with business problem eg) users slow response time for invoices processed (AP/AR modules) with Oracle Financials Drill down from macro to micro areas Never assume! Myth : The database is slow or The database is guilty until proven innocent! Fact: it could be the application server or concurrent manager issue
Hardware Tuning Storage and Disk Tuning Network Tuning Operating System Performance
Concurrent Manager Tuning Oracle R12 EBS Module tuning: AR, AP, GL, HR, etc. Oracle 10g Application Server Tuning- Apache, Java tuning Servlet vs. Socket mode (11i versus R12 EBS)
Database Tuning Instance tuning: SGA, PGA sizing is critical for database tier performance Statistics- FND_STATS
Application Tuning SQL, PL/SQL, Oracle R12 Customizations and Code Performance
Focus on Methodology Holistic Tuning Approach Proactive Versus Reactive Tuning Methods Basic techniques to Advanced Tuning
Key Lesson: Do not mistake the forest for the trees and avoid tunnel vision!
Holistic Picture
Understand the real problem first! Cary Millsap, Method R Oak Table Battle against any Guess (BAAG)- Alex Gorbachev Avoid the Three Blind Men and Elephant Fallacy Drill down to the root cause and analyze Duplicate the problem with test cases if possible Oracle R12 E-Business Suite Performance Tuning Focus on Methodology not Silver Bullets Best Practices Holistic Tuning Approach Proactive Versus Reactive Tuning Methods Basic techniques to Advanced Tuning MOS Note: 69565.1 : A Holistic Approach to Performance Tuning Oracle Applications Systems
Hardware Tuning
Common area overlooked when sizing Oracle R12 EBS Starting point when sizing hardware: Get sizing recommendations for vendors and compare
benchmarks for performance Big centralized servers versus many servers, which is best? For application tier, recommend multiple smaller servers with hardware load balancers For database tier, advise large single server.
additional hardware resources to optimize performance Common question: Why is my Oracle R12 EBS Slow on Virtual Servers? Answer: Virtual Servers consume additional memory resources beyond just the application Watch out for issues with virtualization and performance VMWare not officially supported by Oracle
but is more expensive. Optimize performance with Disk I/O with RAID 0+1 or RAID 1+0 and Avoid RAID 5 for best overall disk performance. Implement Automatic Storage Management (ASM) for Oracle 10g and Oracle 11g on database tier for performance and availability Usually vendor centric depends on storage vendor eg) EMC, SUN, HP, Hitachi, etc.
ensure that you have enough Sizing recommendations from vendors helps Initial load testing is best bet to assess if you have sufficient memory and CPU resources. Tools such as top, sar, vmstat, iostat and Oracle Enterprise Manager (OEM) are useful yardsticks to measure resources and consumption Multiple cores (ie: dual core) excellent for CPU performance but may have additional Oracle licensing requirements.
neglected with performance analysis! Varies based on platform: Linux Windows! MOS Note: 224176.1 How to use OS commands to diagnose Database Performance issues?
with dmesg and sysctl commands. Drill down if necessary with strace utility.
http://support.oracle.com MOS Note: 144638.1 Relationship Between Common Init.ora Parameters and Unix, Linux Kernel Parameters Verify that kernel parameters are set correctly and verify with the vendor platform for UNIX. Assess performance with top, iostat, vmstat, sar with UNIX systems. OS Watcher tool: MOS Note: 301137.1 OS Watcher User Guide
http://docs.hp.com/en/B2355-90692/sam.1M.html IBM AIX: SMIT (System Management Information Tool) is useful tool for performance tuning
http://www.ibm.com/developerworks/aix/library/au-smit/index.html
Note: you may need root OS privileges to run these tools or elevated privileges.
$ iostat -x Linux 2.6.18-194.8.1.0.1.el5 (db01.ben.com) avg-cpu: %user 0.29 %nice %system %iowait 0.00 0.13 0.37 rrqm/s wrqm/s r/s %steal 0.00 w/s
rsec/s
0.00
0.00 0.00
0.15
0.00 0.15
0.01
0.00 0.01
0.07
0.00 0.07
0.29
0.00 0.29
1.79
0.00 1.79
26.25
23.37 26.25
0.00
0.00 0.00
3.77
3.22 3.77
2.05
2.70 2.05
with Windows 2003 and Windows 2008 Server Sysinternal tools excellent for diagnosis as well
http://technet.microsoft.com/en-us/sysinternals/default.aspx
MOS Note: 231159.1: How to configure Windows to improve performance database oracle MOS Note: 1054009.1 Instructions for setting up the Performance Monitor Counters (PERFMON) for Windows Perfmon (Performance Monitor) excellent tool for tuning Windows environments.
issues. Useful My Oracle Support Notes: 104452.1: Troubleshooting Concurrent Manager My Oracle Support Note: 1057802.1 Best Practices for Performance for Concurrent Managers in E-Business Suite
Myth: More concurrent managers are better Keep it simple and use only few concurrent managers
bottlenecks for concurrent managers and other tuning issues with Oracle R12 EBS.
waits between polling status for failures in concurrent processing. You should change the PMON cycle to a lower value if your concurrent managers experience chronic terminations.
Queue Size is the number of PMON sleep cycles that the
the ICM waits before polling for requests that are waiting to run.
How to tune?
View statistics from scripts Focus on tuning for ICM and Standard Managers first
Tune by modify the pmon and sleep parameters You can also use OAM to set these values as well.
load with different critical tasks Example: schedule AP during day and nightly processing on different workshifts Login to OAM as SYSADMIN then navigate path System Administrator Concurrent:Manager-> WorkShifts
performance
PROGRAM
PRI
-- ------- ------ ------ ------ ------- -2 .00 .00 . 00 .00 .00 .00 .00 .00 .01
1 ####### ###### # ##### ###### 8 2 2 .02 .01 .09 .00 .01 .05 .00 .01 .05 .00 .00 .04
How to gather stats for temp tables with Oracle R12 EBS:
exec fnd_stats.gather_table_stats('<schema>','<temp_table_name>');
the Oracle R12 EBS Context file for application tech stack and opmn.xml values.
directory
# Timeout: The number of seconds before receives and sends time out. # Timeout 300 # # KeepAlive: Whether or not to allow persistent connections (more than # one request per connection). Set to "Off" to deactivate. # KeepAlive On # # MaxKeepAliveRequests: The maximum number of requests to allow # during a persistent connection. Set to 0 to allow an unlimited amount. # We recommend you leave this number high, for maximum performance. # MaxKeepAliveRequests 100 # # KeepAliveTimeout: Number of seconds to wait for the next request from the # same client on the same connection. KeepAliveTimeout 15
in performance for network delays for forms, oacore, OC4J Avoid and resolve infamous Uninterrupted Exception 150 error when starting and stopping app tier services Values to check in Oracle R12 EBS Context file Consider shared APPL_TOP and staged APPL_TOP for performance Implement Parallel Concurrent Processing (PCP) so distribute performance load for Concurrent processing
application server in split tier configuration to provide more performance and availability Consider load balancer: hardware or software to improve performance and availability Consider deploying Oracle RAC for scale out and scale up in performance if you need it for large deployments Oracle Application Management Pack (AMP) for tuning and monitoring Oracle R12 EBS environment
some vendors that offer solutions Software Load Balancing Load balancing is complex and requires coordination with network, security and systems administration teams and the database team to implement successfully. Reference Point: My Oracle Support Note 727171.1:
Implementing Load Balancing On Oracle E-Business Suite Documentation For Specific Load Balancer Hardware
Software Load Balancing for Oracle R12 EBS Application Tier performance
Not as robust as hardware load balancers but more
cost effective. Uses web cache option for Oracle 10gAS application server My Oracle Support Note: 380486.1 Installing and Configuring Web Cache 10g and Oracle E-Business Suite 12
The following autoconfig variables must be set within the Oracle R12 EBS application tier context file:
s_webentryhost- webentry points to Oracle 10gAS Web Cache 10g
Server s_webentrydomain- webentry domain to domain name for Oracle 10gAS Web Cache 10g Server s_active_webport-active webport to port for Oracle 10gAS Server Web Cache where it listens for client requests s_webentryurlprotocol - webentry protocol to protocol values that clients will use to access Oracle 10gAS Server Web Cache 10g s_login_page - login page to hostname:port/OA_HTML/AppsLogin
with Oracle R12 EBS Oracle R12 EBS is dependent on Java technology Default values are too low for Java with OC4J settings Watch out for issues with garbage collection Avoid full garbage collection (GC) as this impacts performance! My Oracle Support Note: 567551.1: Troubleshooting : Configuring various JVM tuning parameters for Oracle E-Business suite 11i and R12
For 2-tier environment with application middle tier on separate host server and database server Best not to have more than 100 active users per JVM/OC4J instance for middle tier server. No more than one active JVM/OC4J instance per CPU Best practice: there should be ratio of 1 JVM to 2 CPUs for middle tier server Use top and other system tools to check that sufficient memory is available. You want avoid memory swapping issues. Common mistake for application middle tier server to not be sized correctly for memory and CPU!
FormsGroup
For the forms servlet, the actual JVM/servlet usage is minimal, and a single JVM can normally handle up to 100-250 forms users. JVM settings are configured by the autoconfig variables s_oacore_nprocs, s_disco_nprocs, s_forms_servlet_nprocs and s_xmlsvcs_nprocs
time by minimizing full garbage collection. For JDK 1.5, if the JVM detects that you have a server with multiple CPUs it will enable Parallel Throughput Garbage Collector by default. Rule of thumb: number of GC (garbage collection) threads defaults to number of CPUs per machine. If you run multiple JVMs on the same server, or if you have more than 2 CPUs, to avoid excessive GC, reduce the number of GC threads:
-XX:+UseParallelGC -XX:ParallelGCThreads=2
Two GC threads should be enough for most environments For heap sizes over 1GB, you can test with 4 GC threads and measure
Key Oracle R12 EBS Application Middle Tier Server Autoconfig Variables for Java Heap tuning with JVMs:
s_oacore_jvm_start_option s_forms_jvm_start_options
Guidelines to setup the JVM in Apps E-Business Suite 11i and R12
JVM Behavioral Options:
http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp#BehavioralOptions
Management Pack (AMP). Note: These items require additional cost licenses.
MOS Note 557194.1 provides a script called
unique in how statistics collected Remember to use FND_STATS and NOT DBMS_STATS to collect and update statistics! Watch out for concurrency and locking issues for runaway user processes! Schedule backup jobs off hours to avoid impact business users Dont forget to use tools like AWR and STATSPACK if possible.
Database Tuning
Suggested values for database initialization parameters for
Oracle R12 EBS My Oracle Support Note: 396009.1 Database Initialization Parameters for Oracle Applications Release 12 Oracle R12 by default installs either a 10gR2 or an 11gR1 database for fresh (new) installation. For example: Oracle 12.0 to 12.04 uses 10.2.x database While Oracle 12.1.1 and later release install Oracle 11gR1 database (11.1.x). Watch out for upgrade issues from 11i to R12 EBS for database!
to Oracle R12 must account for performance items Rule based Optimizer (RBO) in 10.x and early 11i releases to the Cost Based Optimizer (CBO) in R12 Different way of tuning for stats and database Consider changes for SGA and PGA sizing Migrate from old tablespace model to Oracle Application Managed Tablespaces (OATM) My Oracle Support Note: 761570.1 Database Preparation Guidelines for an E-Business Suite Release 12.1.1 Upgrade
Q&A Discussion
Thank You!
Please provide feedback Email: ben@ben-oracle.com My blog has further tips on Oracle R12 EBS http://oracle-magician.blogspot.com