11gR2/Aix - Dedicated Server Processes Have Large Usla Heap Segment Compared To Older Versions (文档 I

 客户建议转到底部转到底部

In this Document

 Symptoms
 Changes
 Cause
 Solution
 References


Applies to:

Oracle Database - Enterprise Edition - Version 11.2.0.1 and later
IBM AIX on POWER Systems (64-bit)

Symptoms

Dedicated server processes using significantly more memory on 11gR2 compared to previous versions (9i, 10g, 11g).

Using svmon to monitor process memory segment after initial DB connection, You can observe that typical USLA heap size jumped from ~0.4M in 10g to 7.0M in 11gR2.

svmon -P PID - where PID is an Oracle process id

Oracle Release -> (work USLA heap times 4k pages size)

11.2.0.1.0 -> 7M bytes
11.1.0.7.0 -> 60KB
10.2.0.4.0 -> 420KB

Slow system performance for larger footprint of all oracle server process. If physical memory is fully used, the could terminate an Oracle instance via terminating a PMON process.

 

Changes

Upgraded to 11gR2

Cause

In 11gR2, the Oracle server process (oracle binary) is linked with an additional linker options:-bexpful and -brtllib

The -bexpfull and -brtllib linker options were added to implement the Oracle hot patching functionality

In the previous releases of Oracle 11gR1, 10g and 9i, the -bexpful and -brtllib ld options are not used.


USLA heap usage from an "svmon -p of an Oracle server process" would be around 1800 4KB pages (~7MB) and this USLA heap is process private. This is needed for Oracle on-line patching: a new functionality implemented in 11gR2. With this feature, global symbols in the Oracle binary are saved in USLA heap for resolving the new object files in the shared libraries included in a patch.

Oracle has created fix in
Bug 10190759 - PROCESSES CONSUMING ADDITIONAL MEMORY DUE TO 'USLA HEAP'

Solution


Please see latest information published by IBM:

The IBM and Oracle recommended resolution is that customers upgrade to AIX 6.1 TL09 or AIX 7.1 TL03 (use latest SP), and then apply the Oracle patch for database 11.2.0.2 and 11.2.0.3 that can be found by searching My Oracle Support (MOS) for bug number 13443029 (please note that a userid and password are required to access MOS).  This patch relinks Oracle with the current TL’s, reducing per-process memory consumption for "USLA heap" segment.  When upgrading your environment it is recommended to use AIX 6.1 TL09 SP03 (minimum TL07 SP10) or AIX 7.1 TL03 SP03 (minimum TL01 SP06) or higher.  If AIX 6.1 TL09 SP03 or AIX 7.1 TL03 SP03 or higher is not used, you need to ensure that the following APAR is appropriately installed for your OS level to resolve a linker error that will occur with Oracle installation or with the relinking. For example:

AIX 6.1 TL-07 APAR IV09580, IV28319, and IV20880

click on "obtain the fix for this APAR;" choose 6100-07
 

AIX 7.1 TL-01 APAR IV09541, IV28925, and IV21116

click on "obtain the fix for this APAR;” choose 7100-01

 

Also, IBM recommends that customers, who have multiple Oracle 11gR2 database or ASM installed on the same LPAR and the installed areas are patched or going to be patched with Oracle’s USLA heap patch, apply APAR IV20880 on AIX 6.1 TL-07 or APAR IV21116 on AIX 7.1 TL-01 to resolve system or application crash or hang that may occur in certain conditions.  

If customer cannot upgrade to AIX 6.1 TL09 or AIX 7.1 TL03, apply the Oracle patch that can be found by searching My Oracle Support (MOS) for bug number 10190759. This Oracle patch also relinks the binary to reduce the memory footprint of Oracle processes; however it has the disadvantage of disabling Oracle's online patching mechanism.


---------------------------------------------------------------------------------------------------------------------
There is also a workaround: linking the Oracle 11gR2 binary without -bexpful and -brtllib option.
These are the steps:

Please also note that the environment variable SHARED_SYMTAB must be o be set to 'Y'. When set to 'N' it results in the shared symbol table run loader feature being disabled for any binaries running in that environment (including Oracle).
This causes the processes to continue to use additional memory for the Work USLA Heap

Details are available in Bug 17909393.

- create under $ORACLE_HOME/rdbms/lib a file called opi.exp which will contain just this line :
opimai_real

- change the file permission to 775 (-rwxrwxr-x) :
chmod 775 opi.exp
- do a backup of original en_rdbms.mk under $ORACLE_HOME/rdbms/lib
cp -p env_rdbms.mk env_rdbms.mk_ORIGINAL

- edit env_rdbms.mk under $ORACLE_HOME/rdbms/lib
- add in the list of variables :
OPI_EXP=$(RDBMSLIB)/opi.exp

- change the line 3448 from

ORACLE_LINKLINE+=$(AIO_NWAIT_TIMEOUT_EXP) -bE:$(ODM_EXP) -bE:$(LIBCOREJAVA_EXP) -bpT:0x100000000 -bpD:0x110000000 -bforceimprw -brtllib -bexpfull

to

ORACLE_LINKLINE+=$(AIO_NWAIT_TIMEOUT_EXP) -bE:$(ODM_EXP) -bE:$(LIBCOREJAVA_EXP) -bpT:0x100000000 -bpD:0x110000000 -bforceimprw -bE:$(OPI_EXP)

- run the command: relink all



NOTE:
Customer suggested alternative for 11.2.0.3 is to edit env_rdbms.mk line 3523 to:

ORACLE_LINKLINE+= -bE:$(ODM_EXP) -bE:$(LIBCOREJAVA_EXP) $(PL_ADDR_OPTS) -bE:$(OPI_EXP)


 

NOTE:
if you don't use the opi.exp steps documented above, at instance startup you will get:

   ERROR:
   ORA-12547: TNS:lost contact

 

Apply Patch:10190759 or relinking oracle without -bexpful and -brtllib options it will disable the on-line patching functionality.

 

References

BUG:10211065 - MEMORY FOOTPRINT FOR DEDICATED SERVER PROCESSES MORE THAN DOUBLED AFTER 11G UGP
BUG:10190759 - PROCESSES CONSUMING ADDITIONAL MEMORY DUE TO 'USLA HEAP'
BUG:9796810 - 11G SERVER PROCESSES CONSUMING MUCH MORE MEMORY THAT 10G OR 9I

BUG:18755510 - PROCESSES CONSUMING ADDITIONAL MEMORY DUE TO 'USLA HEAP'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值