Please check _realfree_heap_pagesize_hint (at instance level) and
vm.max_map_count (cat /proc/sys/vm/max_map_count) at OS level.
Maximum Process level PGA Memory - By default each database process on linux,
can take up to 4GB of maximum PGA (Program Global Area) memory. This maximum
limit is determined (_realfree_heap_pagesize_hint at instance level *
vm.max_map_count at OS level) . Default of both these parameters is 64k, so we
get default maximum each process level PGA of 4GB.
vm.max_map_count – defines the maximum number of VMAs (Virtual Memory Areas)
that a particular process can own. VMA is a continuous area of virtual address
space. This has a default value of 64k (65536)
_realfree_heap_pagesize_hint - hint for real-free page size in bytes. This has
a default value of 64k (65536)
Bug 11852492 : ORA-4030 OCCURS WHEN PGA EXCEEDS 4GB. This is not a bug, but
more of a default configuration, if one requires more than 4GB of PGA memory
then parameter needs to be adjusted.
From: <oracle-l-bounce@xxxxxxxxxxxxx> on behalf of Henry Poras
Date: Thursday, 16 March 2017 at 17:19
To: ORACLE-L <oracle-l@xxxxxxxxxxxxx>
Subject: ORA-04030 possible unix limits??
I am running on Oracle 22.214.171.124
We are currently getting 4030 (timobj call) which I have tracked to an
aggregate function which is instantiating lots of (untunable) pga memory.
Our pga_aggregate_target is 700GB and
our pga_aggregate_limit is 900G
We are not coming close to using our aggregate memory, yet the process is
erroring out at 32GB. I am trying to see if this is an Oracle limit (in the
past versions, this kind of untunable allocation would continue to rise) or a
I have checked both ulimit -a and ulimit -Hm with both being unlimited. Could
there be another place that Linux is limiting the process? Has the Oracle PGA
allocation changed in 12c?