Tom,
I did read the documentation. Here is from Performance Tuning Guide:
==========================
http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/memory.htm#sthref410 The memory for the KEEP pool is not a subset of the default pool.==========================
Please also see the Metalink article ID 257643.1. Quote:
==============
Below are the manual SGA size parameters :
DB_KEEP_CACHE_SIZE
DB_RECYCLE_CACHE_SIZE
DB_nK_CACHE_SIZE (n = 2, 4, 8, 16, 32)
LOG_BUFFER
STREAMS_POOL_SIZE
Manual SGA parameters are specified by the user, and the given sizes precisely control the sizes of their corresponding components.
When SGA_TARGET is set, the total size of manual SGA size parameters is subtracted from the SGA_TARGET value, and balance is given to the auto-tuned SGA components.==============
From the Concepts Manual that you pointed to:
===================
Manually Managed SGA Components
There are a few SGA components whose sizes are not automatically adjusted. The administrator needs to specify the sizes of these components explicitly, if needed by the application. Such components are:
Keep/Recycle buffer caches (controlled by DB_KEEP_CACHE_SIZE and DB_RECYCLE_CACHE_SIZE)
Additional buffer caches for non-standard block sizes (controlled by DB_nK_CACHE_SIZE, n = {2, 4, 8, 16, 32})
The sizes of these components is determined by the administrator-defined value of their corresponding parameters. These values can, of course, be changed any time either using Enterprise Manager or from the command line with an ALTER SYSTEM statement.
The memory consumed by manually sized components reduces the amount of memory available for automatic adjustment. For example, in the following configuration:
SGA_TARGET = 256M
DB_8K_CACHE_SIZE = 32M
The instance has only 224 MB (256 - 32) remaining to be distributed among the automatically sized components.===================
My confusion stems from the following:
Why all the memory allocated to KEEP pool was taken out of buffer pool only? Since ASMM should automatically manage the buffer pool, shared pool, large pool, java pool and streams pool, taking out 500MB should have had an effect on size of other pools also.
Thanks...
December 01, 2008 - 6:15 am UTC
The SGA is "a size"
you allocate various "non-managed components" like the keep pool or the 8k pool. That comes from the SGA - which is "a size"
The sga_target IS THAT SIZE.
So you said "sga - be 256m, by the way, take 32m of that and be the 8k pool, now manage the rest of the components using 256-32mb of memory"
Not entirely sure where the confusion comes from?
You tell us how large the sga should be - 256m
You tell us how large various components should start at, or should be (your 8k buffer) - that is sliced off of the SGA.
That is exactly what the bolded text you hilited said:
...
When SGA_TARGET is set, the total size of manual SGA size parameters is subtracted from the SGA_TARGET value, and balance is given to the auto-tuned SGA components.
....
you hilighted the words that exactly describe what you saw...
then the rest is automagically assigned where ever we want.