Issue: ORA-04030: out of process memory when trying to allocate 16328 bytes (koh-kghu call ,pl/sql vc2)
Following ORA-04030 error is encountered every time when the PGA allocation reaches 15GB:
The incident trace shows 15G used by pl/sql:
=======================================
TOP 10 MEMORY USES FOR THIS PROCESS
---------------------------------------
100% 15 GB, 1008569 chunks: "pl/sql vc2 " PL/SQL
koh-kghu call ds=fffffc7ffc6f51f8 dsprt=c715710
0% 15 MB, 15763 chunks: "free memory "
pga heap ds=c715710 dsprt=0
This is due to bug 14119856 when real free allocator is used even though pga_aggregate_target is set more than 16GB.
Use below query to check if real free allocator is used:
SQL> col name format a30
col cur_val format a20
select i.ksppinm name , v.ksppstvl cur_val, v.ksppstdf default_val,v.ksppstvf
from x$ksppi i, x$ksppcv v where i.indx = v.indx and i.ksppinm in
('_realfree_heap_pagesize_hint', '_use_realfree_heap');SQL> SQL> 2 3
NAME CUR_VAL DEFAULT_V KSPPSTVF
------------------------------ -------------------- --------- ----------
_realfree_heap_pagesize_hint 65536 TRUE 0
_use_realfree_heap TRUE TRUE 0
Technique 1:
Step 1:
• Restart the database and server in order to fix the issue
Or
Change the upper limit at either the OS or at the database level:
• Change the page count at the OS level:
by root user,
$ more /proc/sys/vm/max_map_count
$ sysctl -w vm.max_map_count=200000 (for example)
OR at database level,
• Adjust the realfree heap pagesize within the database by setting the following parameters in the init/spfile and restart the database.
_use_realfree_heap=TRUE
_realfree_heap_pagesize_hint = 262144
- OR -
Use Workaround:
Set "_use_realfree_heap=false" and restart database instance.
Or
Apply patch <="" a="">14119856> if available for your platform and Oracle version or request for a one-off patch.
Reference MI note :: Doc ID 1506315.1 and Thanks for the giving time and reading the post .
Following ORA-04030 error is encountered every time when the PGA allocation reaches 15GB:
The incident trace shows 15G used by pl/sql:
=======================================
TOP 10 MEMORY USES FOR THIS PROCESS
---------------------------------------
100% 15 GB, 1008569 chunks: "pl/sql vc2 " PL/SQL
koh-kghu call ds=fffffc7ffc6f51f8 dsprt=c715710
0% 15 MB, 15763 chunks: "free memory "
pga heap ds=c715710 dsprt=0
This is due to bug 14119856 when real free allocator is used even though pga_aggregate_target is set more than 16GB.
Use below query to check if real free allocator is used:
SQL> col name format a30
col cur_val format a20
select i.ksppinm name , v.ksppstvl cur_val, v.ksppstdf default_val,v.ksppstvf
from x$ksppi i, x$ksppcv v where i.indx = v.indx and i.ksppinm in
('_realfree_heap_pagesize_hint', '_use_realfree_heap');SQL> SQL> 2 3
NAME CUR_VAL DEFAULT_V KSPPSTVF
------------------------------ -------------------- --------- ----------
_realfree_heap_pagesize_hint 65536 TRUE 0
_use_realfree_heap TRUE TRUE 0
Technique 1:
Step 1:
• Restart the database and server in order to fix the issue
Or
Change the upper limit at either the OS or at the database level:
• Change the page count at the OS level:
by root user,
$ more /proc/sys/vm/max_map_count
$ sysctl -w vm.max_map_count=200000 (for example)
OR at database level,
• Adjust the realfree heap pagesize within the database by setting the following parameters in the init/spfile and restart the database.
_use_realfree_heap=TRUE
_realfree_heap_pagesize_hint = 262144
- OR -
Use Workaround:
Set "_use_realfree_heap=false" and restart database instance.
Or
Apply patch <="" a="">14119856> if available for your platform and Oracle version or request for a one-off patch.
Reference MI note :: Doc ID 1506315.1 and Thanks for the giving time and reading the post .
I have a question. If you change the setting at the OS Level, do you then have to change the '_use_realfree_heap=FALSE' in the database? Otherwise, it would seem that the DB would ignore the OS setting. I have also posed this question to Oracle Support. Thanks!
ReplyDeleteHi jason ,
DeleteThnask for reading the post . I don’t have solid answer to your question . As per my view its better to change the parameter at to database level instead of OS level , sppose mutliple datbase(dev) is running on the server then change is for all the database .
Regards ,
Rohit kumar
Harrah's Cherokee Casino Resort is open for business
ReplyDeleteThe 나주 출장안마 resort, 평택 출장마사지 which 구미 출장샵 is owned by 광주광역 출장마사지 the Eastern Band of 김해 출장샵 Cherokee Indians, has undergone a massive transformation. The Cherokee Casino Resort opened Jan 6, 2021