從這里下在相關腳本: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.