从这里下在相关脚本:http://updates.oracle.com/ARULink/PatchDetails/PRocess_form?aru=5336110 1) save your current version of $ORACLE_HOME/oracle 2) create a working Directory $ORACLE_HOME/relink 3) cd to $ORACLE_HOME/relink 4) unzip the relinking package 5) link $ORACLE_HOME/bin/oracle to ./oracle0 6) run the script ./genscript to generate some required files and scripts 7) run ./relink.sh to generate the new oracle binary oracle0.new.$$ 8) copy oracle0.new.$$ to $ORACLE_HOME/bin/oracle and verify that the permissions match the original oracle binary.
验证结果很明显,内存占用改善了很多,没有打补丁的一个空连接server进程占用最低都是5M多,而现在只有2M多,改善了50%! hawk1> ps v 17686600 (没打补丁的空连接) PID TTY STAT TIME PGIN SIZE rss LIM TSIZ TRS %CPU %MEM COMMAND 17686600 - A 0:00 0 5496 24600 xx 45561 19104 0.0 0.0 oracle localhost> ps v 557160 (打过补丁的空连接) PID TTY STAT TIME PGIN SIZE RSS LIM TSIZ TRS %CPU %MEM COMMAND 557160 - A 0:00 815 2360 15432 32768 46449 13072 0.0 1.0 oracleor
Oracle8i和Oracle9i虚拟内存默认值对比: 8i ...... shared library binding: deferred global hash table disabled shared vtable support disabled segments: index type address flags size 5 text 4000000000000000 z-r-c 16M 6 data 8000000100000000 ---m- 64M executable from stack: D (default)kernel assisted branch prediction enabled lazy swap allocation for dynamic segments disabled
9i ......... shared library binding: deferred global hash table disabled shared vtable support disabled segments: index type address flags size 5 text 4000000000000000 z-r-c 64M 6 data 8000000100000000 ---m- L (largest possible)executable from stack: D (default)kernel assisted branch prediction enabled lazy swap allocation for dynamic segments disabled
Oracle on IBM AIX platforms (AIX 5L and 4.3.3) use a large amount of memory per dedicated connection. For Oracle 9.2 on AIX 5L the memory required per idle Oracle process appears to be about 5Mb. A significant portion of this is related to non-shared const structures (probably about 1Mb) .
This bug is to track the issue of the non-shared const structures.