Thursday, September 18, 2008

kgl_large_heap_warning_threshold parameter

The following message will appear in alert.log file.
Heap size 2294K exceeds notification threshold (2048K).

This error occurs due to a process spending lot of time in finiding free memory extents during an allocate. Warning messages are written in alert.log file when heap size exceeds this threshold value.

Set _kgl_large_heap_warning_threshold to a reasonable high value or zero to prevent these warning messages. Value needs to be set in bytes.

If you want to set this to 8192 (8192 * 1024) and are using an spfile:

(logged in as "/ as sysdba")
SQL> alter system set "_kgl_large_heap_warning_threshold"=8388608 scope=spfile ;
I guess it needs a quick bounce;
SQL> shutdown immediate;
SQL> startup;
SQL> show parameter _kgl_large_heap_warning_threshold
SQL> SELECT a.ksppinm "Parameter",
b.ksppstvl "Session Value",
c.ksppstvl "Instance Value"
FROM x$ksppi a, x$ksppcv b, x$ksppsv c
WHERE a.indx = b.indx AND
a.indx = c.indx AND
a.ksppinm LIKE '%kgl_large_heap%';

Please see oracle metalink Note:330239.1 for more information.

Note: "_kgl_large_heap_warning_threshold" was a new parameter in 10.2.0.1 and Oracle internal threshold was very low. Hence it was recommended to be set at 8388608 in order to avoid too many warnings in the alert log about heap size. In 10.2.0.2 it was fixed and set at 50MB which is default and is no longer necessary to be set.

No comments:

Followers