Re: LOG FILE SYNC wait event

  • From: "Alberto Dell'Era" <alberto.dellera@xxxxxxxxx>
  • To: rjoralist@xxxxxxxxxxxxxxxxxxxxx
  • Date: Tue, 4 Sep 2007 21:03:24 +0200

From the Metalink note 373018.1 you suggested, I get this important
fragment:
"Oracle combines fixed SGA area and redo buffer together, if there is
a free space after Oracle put combined buffer to fit in granule, that
space is added to redo buffer"
so, the log_buffer initialization parameter is not really "ignored",
but rather,
is used as a minimum value - the log buffer size is that value plus
(possibly) any additional free space in the granule(s) used to store
the fixed SGA+log buffer.

So this explains nicely DBA Deepak's test case.

But back to one of the the original questions - is the log buffer
managed dynamically
by ASMM, that is, can its (real) size change after instance boot time,
stealing memory
from other pools, or giving it back, depending on the workload ?
If the documentation is consistent with the actual behavior (and I
always assume it is,
unless a convincing counterexample is presented), no:
http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/initparams192.htm

"SGA_TARGET specifies the total size of all SGA components. If
SGA_TARGET is specified, then the following memory pools are
automatically sized:

    *   Buffer cache (DB_CACHE_SIZE)
    *   Shared pool (SHARED_POOL_SIZE)
    *   Large pool (LARGE_POOL_SIZE)
    *  Java pool (JAVA_POOL_SIZE)
    *   Streams pool (STREAMS_POOL_SIZE)

If these automatically tuned memory pools are set to non-zero values,
then those values are used as minimum levels by Automatic Shared
Memory Management. You would set minimum values if an application
component needs a minimum amount of memory to function properly.

The following pools are manually sized components and are not affected
by Automatic Shared Memory Management:

    *  Log buffer
    *  Other buffer caches, such as KEEP, RECYCLE, and other block sizes
    *  Fixed SGA and other internal allocations
"

So to recap - the log buffer size may be greater then log_buffer, and may be
increased to make "fixed sga size" + "log buffer size" an exact multiple of
a granule. This calculation is made at instance boot time; and the log buffer
size is constant after the the instance has booted.

HTH
Alberto




On 9/4/07, Rich Jesse <rjoralist@xxxxxxxxxxxxxxxxxxxxx> wrote:
> If I'm not mistaken, log_buffer will be automagically sized at instance
> startup if using ASMM, effectively ignoring the setting of the log_buffer
> parameter.  This is eluded to in the paragraph below your reference:
>
> "The memory allocated to these pools [including log_buffer] is deducted from
> the total available for SGA_TARGET when Automatic Shared Memory Management
> computes the values of the automatically tuned memory pools."
>
> Also see MeatLink 373018.1.
>
> Someone please correct me if I'm wrong.  (be gentle!)
>
> Rich
>
> > BTW The log buffer is not managed by the Automatic Shared Memory Management
> > in 10gR2:
> >
> > http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/initparams192.htm
> >
> > "The following pools are manually sized components and are not
> > affected by Automatic Shared Memory Management:
> >      * Log buffer
>
>
>


-- 
Alberto Dell'Era
"the more you know, the faster you go"
--
//www.freelists.org/webpage/oracle-l


Other related posts: