EBS性能调优最佳实践
参考文档:Doc ID 744143.1
从实践中得出一条经验:对于EBS系统来说,CPU的数量比CPU的主频更重要。
数据库层
- 请参照<note 244040.1> Recommended Performance Patches for the Oracle E-Business Suite.
- 有几种优化相关的修补程序需要应用在版本10.2.0.(2/3)上.请参照Note 244040.1
- 将EBusiness Suite转换成OATM表空间模型。请参照Note 404954.1How to run OATM migration utility.
- 确保对eBusiness suite初始化参数的设置是正确的。
可以用 文档 Note 174605.1中的 bde_chk_cbo.sql脚本来进行检查。然后你可以用下面两个文档中的任何一篇文档来验证结果:Note 216205.1 Database Initialization Parameters for Oracle Applications 11i
Note 396009.1 Database Initialization Parameters for Oracle Applications Release 12 - 确保Gather Schema Stats定期运行. 这可以被bde_last_analyzed.sql(Note 163208.1)检查, 它按照Schema和索引的验证统计信息.
- 不要过度收集整个Schema或整个数据库的统计数据,如按日或按周收集.
- 不要在系统高峰期间对永久性对象做数据收集.
- 数据收集会将游标无效化。除非您使用 'No Invalidate'选项.
- 收集统计数据需要字典和对象级锁。
- 'GATHER_AUTO选项只有对指定了'修改阈值'(DML与表的行数的数量的比值的百分比)的对象时才使用。
- 如果数据分配没有改变的话计划是不可能改变的.
- 只使用FND_STATS或者 Gather Schema 和Gather Table Statistics 并发程序。
- 不要直接使用分析或者dbms_stats命令。因为这是不支持的并且会导致局部最优计划。
- 为了从SQL*Plus执行FND_STATS相关的存储进程对一个或所有的schemas,或者某个表来收集 CBO stats,请使用如下例子:
# sqlplus apps/<apps_pwd> SQL> exec fnd_stats.gather_schema_statistics('MRP'); <- One schema SQL> exec fnd_stats.gather_schema_statistics('ALL'); <- All schemas SQL> exec fnd_stats.gather_table_stats('MRP','MRP_FORECAST_DATES'); <- One table
应用层
- 内部用户部署socket模式:R12: 请参照Note 384241.1.
- 启用Forms死客户端检测
数值以分钟来制定: FORMS_TIMEOUT=10
• 终止死掉的客户端的 fwebmx 进程.
• 启用Forms异常终止手柄
- 设置 FORMS_CATCHTERM=0(有关详细信息,请参阅Note 745711.1)
以上两个变量( FORMS_TIMEOUT 和 FORMS_CATCHTERM ) 能从context 文件.XML更改。
对11i的用户您可以通过s_f60catchterm 和s_f60time两个参数找到。
对R12的用户您可以通过s_forms_catchterm 和s_forms_time两个参数找到。
- 禁止取消查询
- 取消查询会增加中间层和数据库层的CPU
- 关于如何启用并且调优取消查询相关的参数,请参照Note 138159.1
- 禁止取消查询 : 将 预置文件 “FND: Enable Cancel Query” 设置成 ‘No’
- 关于调优JVM/OC4J ,请参照Note 362851.1:
- 理想状态是一个JVM对应2个CPU,但至少是一个JVM对应1个CPU。
- 对于OACoreGroup,每个JVM不超过100个并行用户。
- 对于FormsGroup,JVM程序是最低限度的,一个单独的JVM可以正常处理100到250个窗体用户。
- 对于OACoreGroup, 由以下的配置开始:
对于R12.0 和 11i:
-Xmx512M -Xms256M -XX:MaxPermSize=128M -XX:NewRatio=2 -XX:+PrintGCTimeStamps
对于 R12.1 和更高版本:
-Xmx1024M -Xms512M -XX:MaxPermSize=256M -XX:NewRatio=2 -XX:+PrintGCTimeStamps
根据最小垃圾回收频率和用户由于全垃圾回收暂停的时间来调整堆的大小。
在JDK1.6中,JVM检测到你有一个服务等级机器(2个或者更多CPU并且有2G或更多的内存)并且会自动让垃圾回收机制平衡。GC进程的数量默认是机器中CPU的数量。如果你在同一台机器上运行多个JVM,或者你的机器上有多余2个CPU,为了防止GC进程过于活跃,你应该通过以下的方式来降低GC进程的数量:
-XX:+UseParallelGC -XX:ParallelGCThreads=2
在大多数情况下,使用2个GC进程应该是足够的。如果你使用的堆大小超过了1G,你可以尝试使用4个GC进程看看是否可以优化你的系统。 - 如果使用小程序窗体模式,下列对于FormsGroup的配置应该适用于大多数情况:
-Xmx256M -Xms128M -XX:MaxPermSize=128M -XX:NewRatio=2
-
注意: a) 堆由以下的autoconfig参数进行配置: 11i: s_jvm_options, s_forms_jvm_options R12: s_oacore_jvm_start_option, s_forms_jvm_start_options,
-
(这些参数应该通过OAM中autoconfig编辑器更新,参数更新于$CONTEXT_FILE 中)
b) 在11i中,这些修改可以通过$IAS_ORACLE_HOME/Apache/Jserv/etc/jserv.conf文件完成,R12版本中,是在$ORA_CONFIG_HOME/10.1.3/opmn/conf/opmn.xml文件中 -
补充推荐:
1)R12中默认使用servlet模式,因为其更容易建立类似SSL等特征。然而servlet模式会使性能上有退化,性能依靠于网络容量。对于这个原因,如果更顾及性能的话,你可以考虑使用socket模式,因为该模式比servlet模式更有效。
2) 尽管这些参数的建立可以临时通过手工修改来完成(jserv.conf 和 jserv.properties 在11i; opmn.xml 在 R12)正确的更新参数方式要使用内容更改器,更新参数s_oacore_nprocs 和 s_forms_servlet_nprocs, 并运行 autoconfig 。3) Oracle开发部门推荐打最新的ATG补丁rollup7(Note.783600.1).
4) 确保jserv.properties (11i)或者oc4j.properties file (R12)文件下有以下的设置: wrapper.bin.parameters=-DLONG_RUNNING_JVM=true
在jserv.properties 的设置中有DCACHEMODE 条目,可以标注它,或者移出: #wrapper.bin.parameters=-DCACHEMODE=LOCAL
5) 检查可以优化性能的推荐补丁: Note 244040.1 - Oracle E-Business Suite 推荐性能补丁 -
6) AIX 只接受以下参数"-Xmx" -Xms". 这就提示这些参数不应该出现在别的平台上。更多的在AIX中的JDK参数可以再以下路径找到 http://publib.boulder.ibm.com/infocenter/javasdk/v6r0/index.jsp?topic=%2Fcom.ibm.java.doc.60_26%2Fvm626%2FJ9%2FGC%2Fxmxoption.html
个人经验
- oacore和forms设置相等,视cpu核数而定,最好不要超过10个,一般设置5个足以,oafm数量设置三个足以。
- EBS只支持32位JDK,JVM heap size不是越大越好,有人试过最大2.75G,2G,从Oracle的最佳实践来看,1024M足以。
Note 455492.1有言道:Download the 32-bit JDK, not the Java Runtime Environment (JRE). Do not choose the 64-bit version, which is not supported.
- JVM heap size一般设置-Xms、-Xmx相等以避免在每次GC后调整堆的大小
对于生产环境,修改oacore的jvm heap设置
-Xmx1024M -Xms1024M -XX:MaxPermSize=256M -XX:NewRatio=2 -XX:+PrintGCTimeStamps -XX:+UseParallelGC -XX:ParallelGCThreads=2
其他
-Xmx512M -Xms512M -XX:MaxPermSize=160M -XX:NewRatio=2 -XX:+PrintGCTimeStamps -XX:+UseParallelGC -XX:ParallelGCThreads=2
浙公网安备 33010602011771号