SGA_TARGET question

Oracle's 10.2 documentations states the following about SGA_TARGET.
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
The memory allocated to these pools is deducted from the total available for SGA_TARGET when Automatic Shared Memory Management computes the values of the automatically tuned memory pools.
Under the area that illustrates what is not affected by ASMM it has "Fixed SGA and other internal allocations".
Can anyone tell me exactly what these are??

Find your answer in this metalink doc
How to determine SGA Size (7.x, 8.x, 9.x, 10g)
Doc ID: Note:1008866.6

Similar Messages

  • Questions on init.ora file

    Hi,
    I have some questions on init.ora file. While checking the init file in my system i found that it defines a spfile in a non default location.
    The parameter names are like
    1) db1.__db_cache_size
    2) *._kgl_large_heap_warning_threshold
    3) *.sga_target
    what do they indicate? I mean what does 'db1.__' , '*._' and '*.' indicate? There are multiple database in the Windows 2003 server and the db version is 10g R1
    Regards,
    SID
    Edited by: SID3 on Jun 29, 2010 5:55 AM
    Edited by: SID3 on Jun 29, 2010 5:56 AM

    SID3 wrote:
    From the discussion i guess the following points
    1) db1._ means they are specific to databases.
    2) *._ and * means they are used accross databases and chaging it in any of the initfile might affect all? I seriously doubt this.You are mistaken when speaking about database. Bear in mind, a database is not an instance.
    * here means this parameter will apply to any instance of that database (if it is in RAC), or to the only one instance of that database (if it is in non-RAC).
    Find out more :
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_2013.htm#i2146449
    Nicolas.

  • SGA_MAX_SIZE  and  SGA_TARGET  in Oracle 10G

    We have the following H/W with Solaris 9
    SPARC-IV 16 CPUs
    32GB RAM
    128GB swap
    What is the optimal size of sga_target and sga_max_size that can be configured for a heavy batch processing oracle server. Nothing runs except oracle in the above server.
    We have currently 3GB SGA size , however our heavy queries are very slow.
    We have huge updates on tables with more than 200Millions rows.
    Do we need to have JAVA_POOL if the java stored procedure are NOT used.
    However we are connecting to this database using JDBC also.
    Moreover ASM is enabled in this server.
    You expert suggetions are always welcome.

    That's not a question that can be answered easily. It depends very much on where the time is going. Three main targets:
    Writing the log file - which is largely about use of disks, not memory.
    Reading data - lots of single block reads suggest looking at a bigger cache
    Reading and writing temp because of large sorts/hash joins - pga configuration
    One difficulty with TEMP is that the I/Os are often asynchronous, so a session can do a lot of TEMP I/O without recording much time - which means it can cause a problem elsewhere without suffering a problem itself.
    You didn't mention the pga_aggregate_size - which is an important consideration in 10g and can be more important than the sga sizing in DSS and batch-like processing. Between them, the SGA and PGA_aggregate_target should probably account for a very large fraction of your memory - but (since you are on Solaris) make sure you look into large memory pages and intimate shared memory, otherwise you may need to leave a lot of memory available for the O/S memory management mechanisms.
    As far as the java pool is concerned, check v$sgastat for pools which constantly show free memory, and reclaim any large free volumes.
    Bottom line - if you've got the memory in the box, you might as well use it in the best possible place; but at the moment we don't have enough information to tell us where it would be most useful.
    Regards
    Jonathan Lewis
    http://jonathanlewis.wordpress.com
    http://www.jlcomp.demon.co.uk

  • Difference between SGA_MAX_SIZE and SGA_TARGET

    Difference between SGA_MAX_SIZE and SGA_TARGET

    user8645026 wrote:
    Difference between SGA_MAX_SIZE and SGA_TARGETIs discussed in the database forum, not the forum for which the title is " Community Feedback and Suggestions (Do Not Post Product-Related Questions Here)".
    Is also discussed in the documentation at http://tahiti.oracle.com

  • SGA_TARGET

    Hi,
    I have one quick question regarding the SGA_TARGET parameter.
    This is my sga allocation so far:
    Total System Global Area 2147483648 bytes
    Fixed Size 2140320 bytes
    Variable Size 2124240736 bytes
    Database Buffers 16777216 bytes
    Redo Buffers 4325376 bytes
    My RAM size is 16GB and i would be creating many other applications as well. now i have the following sga parameters:
    SQL> sho parameter sga;
    NAME TYPE VALUE
    lock_sga boolean FALSE
    pre_page_sga boolean FALSE
    sga_max_size big integer 2G
    sga_target big integer 0
    Now my worry is the sga_target i want to make use but i have given old parameters as well and i am getting the error
    Error:     ORA-00381 (ORA-381)
    Text:     cannot use both new and old parameters for buffer cache size
         specification
    now my db* parameter settings are:
    SQL> sho parameter db;
    NAME TYPE VALUE
    db_16k_cache_size big integer 0
    db_2k_cache_size big integer 0
    db_32k_cache_size big integer 0
    db_4k_cache_size big integer 0
    db_8k_cache_size big integer 0
    db_block_buffers integer 2048
    db_block_checking string FALSE
    db_block_checksum string TRUE
    db_block_size integer 8192
    db_cache_advice string ON
    db_cache_size big integer 0
    NAME TYPE VALUE
    db_create_file_dest string
    db_create_online_log_dest_1 string
    db_create_online_log_dest_2 string
    db_create_online_log_dest_3 string
    db_create_online_log_dest_4 string
    db_create_online_log_dest_5 string
    db_domain string PFIZER.COM
    db_file_multiblock_read_count integer 16
    db_file_name_convert string
    db_files integer 1024
    db_flashback_retention_target integer 1440
    NAME TYPE VALUE
    db_keep_cache_size big integer 0
    db_name string EAMS01
    db_recovery_file_dest string
    db_recovery_file_dest_size big integer 0
    db_recycle_cache_size big integer 0
    db_unique_name string EAMS01
    db_writer_processes integer 2
    dbwr_io_slaves integer 0
    rdbms_server_dn string
    standby_archive_dest string ?/dbs/arch
    standby_file_management string MANUAL
    and my init parameters are:
    EAMS01.__streams_pool_size=33554432
    *._allow_level_without_connect_by=TRUE
    *.aq_tm_processes=1
    *.ARCHIVE_LAG_TARGET=900
    *.audit_file_dest='/u03/oracle/admin/EAMS01/adump'
    *.audit_trail='TRUE'
    *.background_dump_dest='/u03/oracle/admin/EAMS01/bdump'
    *.control_files='/u04/oradata/EAMS01/control01.ctl','/u04/oradata/EAMS01/control02.ctl','/u04/oradata/EAMS01/control03.ctl'
    *.core_dump_dest='/u03/oracle/admin/EAMS01/cdump'
    *.db_block_buffers=550# SMALL
    *.db_domain='PFIZER.COM'
    *.db_file_multiblock_read_count=16# SMALL
    *.db_files=1024# SMALL
    *.db_name='EAMS01'
    *.global_names=TRUE
    *.java_pool_size=96M
    *.job_queue_processes=15
    *.large_pool_size=32M
    *.log_archive_dest='/u04/arch/EAMS01'
    *.log_archive_format='EAMS01_%t_%s_%r.arc'
    *.log_archive_max_processes=5
    *.log_checkpoint_interval=10000
    *.log_checkpoints_to_alert=TRUE
    *.max_dump_file_size='10240'# limit trace file size to 5 Meg each
    *.NLS_DATE_FORMAT='YYYY-MM-DD'
    *.nls_length_semantics='CHAR'
    *.NLS_TERRITORY='AMERICA'
    *.open_cursors=768
    *.open_links=128
    *.open_links_per_instance=128
    *.optimizer_features_enable='10.2.0.3'
    *.parallel_max_servers=5# SMALL
    *.pga_aggregate_target=500M
    *.processes=512# SMALL
    *.query_rewrite_enabled='TRUE'
    *.query_rewrite_integrity='STALE_TOLERATED'
    *.remote_login_passwordfile='EXCLUSIVE'
    *.resource_limit=TRUE
    *.service_names='EAMS01.pfizer.com'
    *.sga_max_size=2G
    *.shared_pool_size=500000000# SMALL
    *.streams_pool_size=33554432
    *.timed_statistics=TRUE
    *.undo_management='AUTO'
    *.user_dump_dest='/u03/oracle/admin/EAMS01/udump'
    now what the parameters i am missing or need to edit sga_target so that oralce will use empirically over
    time. Thank you.
    -- Raman.

    Hi..
    >
    # symptom: ORA-00381: cannot use both new and old parameters for buffer cache size specification
    # cause: Both db_block_buffers and db_cache_size parameters are defined in the init.ora (instance parameter file). The db_block_buffers parameter has been deprecated and has been maintained only for backward compatibility. The db_cache_size parameter is one of the size parameters which defines the size of the cache for buffers. These parameters cannot be combined. Setting this along with the Dynamic SGA parameters errors out.
    >
    For sga_target refer to [http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/initparams193.htm#REFRN10256]
    which quotes
    >
    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.
    >
    So, the what ever the value are set for the parameter will act as minimum value when sga_target is set.
    HTH
    Anand

  • ALTER SYSTEM SET SGA_TARGET

    Hi,
    in 10g R2 should I stop/start database when I change sGA_TARGET :
    ALTER SYSTEM SET SGA_TARGET=value [SCOPE={SPFILE|MEMORY|BOTH}]
    Thank you.

    user522961 wrote:
    OK.
    When I query V$PARAMETER I have the OLD value for SGA_TARGET. It is normal because the value in V$PARAMETER comes from starting and spfile. How can I be sur that now oRACLE uses the new value for SGA_TARGET effectively ?
    Thanks again.Not sure I understand your question. If you set SGA_TARGET with SCOPE=MEMORY or BOTH, it should be in effect immediately.
    SQL> alter system set sga_target=253M scope=both;
    System altered.
    SQL> select value bytes, value/1048576 MB from v$parameter where name = 'sga_target';
    BYTES              MB
    268435456         256
    SQL> show parameter sga
    NAME                                 TYPE        VALUE
    lock_sga                             boolean     FALSE
    pre_page_sga                         boolean     FALSE
    sga_max_size                         big integer 512M
    sga_target                           big integer 256M
    SQL> alter system set sga_target=257M scope=both;
    System altered.
    SQL> select value bytes, value/1048576 MB from v$parameter where name = 'sga_target';
    BYTES              MB
    272629760         260
    SQL> show parameter sga
    NAME                                 TYPE        VALUE
    lock_sga                             boolean     FALSE
    pre_page_sga                         boolean     FALSE
    sga_max_size                         big integer 512M
    sga_target                           big integer 260M
    SQL>

  • Error message: ORA-00821: Specified value of sga_target 4M is too small

    Dear all
    My database instance is down,when I am trying to start, it throw any error:
    ORA-00821: Specified value of sga_target 4M is too small, needs to be at least 28M
    The problems started when erroneous altered sga_target to some values without specifying the unit.
    My question is, how can I resolve this issue while the database instance is down? I am using spfile
    I tried to start the instance with pfile (startup pfile='D:\oracle\product\10.2.0\admin\orcl\pfile\init.ora') it throw errors:
    LRM-00109: could not open parameter file 'D:\oracle\product\10.2.0\admin\orcl\pfile\init.ora'
    ORA-01078: failure in processing system parameters
    Please any one to help me
    Regards
    Sadock

    Hi,
    What you can do in this case and you don't have a good pfile, you can do the following:
    1. locate the spfile, normally in the $ORACLE_HOME/dbs directory
    2. Make a copy from the spfile to be sure will not be damaged.
    3. Do on unix prompt: strings -a <spfile> > newpfile.ora
    4. Check with an editor the newpfile.ora and edit. The pfile will contain all the settings and you should change the SGA_TARGET value to a size of 400M or higher. Smaller values can be done but are not advisable at 10GR2 or higher.
    5. Try to startup the database using the updated newpfile.ora.
    Hope this will solve your issue.
    Regards, Gerwin

  • (10g)SGA_TARGET 파라미터를 이용한 AUTOMATIC MANAGMENT SGA COMPONENTS

    제품 : ORACLE SERVER
    작성날짜 : 2004-04-26
    PURPOSE
    이 문서는 SGA_TARGET 이라는 새로운 파라미터를 이용하여 Automatic
    management SGA Components에 대하여 알아보기로 한다.
    Explanation
    SGA_TARGET 파라미터를 이용한 Automatic management SGA Components에 대하여
    설명하기로 한다.
    Automatic management SGA Components using SGA_TARGET
    Oracle 10g부터 다음과 같은 각각의 SGA component에 대한 값들을 manual하게
    설정할 필요가 없다.
    shared_pool_size
    log_buffer
    java_pool_size
    large_pool_size
    buffer_cache_size
    위 SGA 파라미터들의 사이즈를 측정하고 initSID.ora file에 그 값을 설정할
    필요가 없음을 의미한다. 사실 SGA 크기를 정의하는 위 파라미터들을 설정하지
    않아도 된다.
    다만 10g 에서는 SGA_TARGET 이라는 새로운 파라미터만 셋팅하면 된다.
    SGA_TARGET 이라는 파라미터는 해당 instance에 필요한 SGA의 최대 크기를
    가리킨다.
    SGA_TARGET을 152M 로 잡았다고 가정하자. 이것은 SGA가 커질 수 있는 최대 크기가
    152M 라는 의미이다. Shared pool, buffer cache, large pool, java pool 과 같은
    SGA component들은 이 maximum 사이즈 내에서 할당될 것이다.
    오라클은 이러한 component들의 초기 값을 자동으로 계산하고 필요에 따라
    자동으로 resize한다.
    즉, SGA_TARGET 만 셋팅되어 있으면 shared pool, buffer cache, large pool,
    java pool에 대하여 값을 명확히 지정할 필요가 없다.
    Example
    SGA_TARGET=152M 로 잡았다고 가정한다.(block size is 8K).
    SQL> show parameter sga_target
    NAME TYPE VALUE
    sga_target big integer 152M
    오라클은 다음과 같이 SGA component들의 사이즈를 정의한다.
    SQL> show sga
    Total System Global Area 159383552 bytes
    Fixed Size 769328 bytes
    Variable Size 72270544 bytes
    Database Buffers 62914560 bytes
    Redo Buffers 23429120 bytes
    여기서 주목할 점은 다음과 같다.
    1) SGA_TARGET을 셋팅하면 SGA_MAX_SIZE 의 값은 또한 SGA_TARGET 으로 셋팅된다.
    즉, SGA_TARGET = SGA_MAX_SIZE.
    SQL> show parameter sga
    NAME TYPE VALUE
    lock_sga boolean FALSE
    pre_page_sga boolean FALSE
    sga_max_size big integer 152M
    sga_target big integer 152M
    2) SGA_TARGET 의 값을 SGA_MAX_SIZE보다 더 크게 설정할 수 없다.
    즉, SGA_TARGET <= SGA_MAX_SIZE.
    SQL> alter system set sga_target=160M;
    alter system set sga_target=160M
    ERROR at line 1:
    ORA-02097: parameter cannot be modified because specified value is invalid
    ORA-00823: Specified value of sga_target greater than sga_max_size
    Reference Documents
    <Note:256913.1>
    Oracle Database Concepts 10g Release 1 (10.1)
    Part No. B10743-01
    Chapter 8: Memory Architecture

    842638 wrote:
    hi experts.. please answer the question
    Im on 10.2.0 linux....
    sga_target=200m
    sga_max_size=400m
    if automatic components take 180MB out of 200MB and lets say manaul components take 10M. so is the remaing 10MB wasted? yes or noWhy wasted? Only after giving memory to the manual components, whatever is left would be given to the automatic components. So nothing would be wasted by this approach.
    HTH
    Aman....

  • Sga_target space allocation

    Hi All,
    I have 6 databases all of them running on a server(Eupdsdbb06).Their sga_target values are as follows.
    gen0646p 1024M
    gen0637p 1024M
    gen0669p 512M
    gen0674p 512M
    gen0621p 512M
    gen0619p 512M
    Here shmmax size = 2GB on this server.
    I want to know how the sum of sga_target for all the above databases i.e 4Gb is allocated from 2GB shmmax allocated as all of them are running?
    Thanks a lot

    tvenkatesh07 wrote:
    Linux 2.6.9
    Here kernel.shmmax=2147483648 (2G) on this server
    So i have 6 databases whose sga_target's value totaling to 4G.
    Whereas Total available shared memory segment size on the server is 2G.
    I want to know how this 2G is sufficient for those 6 Databses ?The question becomes, how much real physical memory do you have? How much memory is actually being used by the total of the 6 databases? How much memory is being used by user processes? File buffers? Are huge pages enabled?
    Oracle can use multiple segments for shared memory, that's not so much a problem (though there have been bugs with this). The problem occurs when you start swapping processes that want to run, and especially if you start swapping shared memory. You probably want to start with the total target value at something like half the physical memory (unless you have dozens of gigabytes), and run all your apps under load, and see what is using up memory. You don't want to get too close to using up all the memory, as then adding a bit more load will make it all go downhill, though be sure you understand how to check what memory is being used, as the OS will likely give over any unused memory to file system buffers. Depending on your configuration, you may not need much in the way of file system buffers.
    Oracle docs assume you have one database per server, so you do have to show some caution in following recommendations with multiple databases, assuming you are using the proper oracle definition of database.

  • SGA_TARGET again

    I've read some about SGA_TARGET and SGA_MAX_SIZE, but there are things I don't understand well I think.
    1) SGA_MAX_SIZE is said to be for a life of an instance -> But I can change it with alter system set sga_max_size=... scope=spfile, restart the database and it gets changed. Why?
    2) Why is exactly SGA_TARGET for? If it's set to a non-zero value it's just to indicate we have ASMM enabled? SGA_TARGET is written to set total memory for SGA. But we can change it dynamically, up to SGA_MAX_SIZE, that's why for me SGA_MAX_SIZE looks rather for total memory for SGA. It can be changed too though...
    Thx for answer.
    A.

    I've read some about SGA_TARGET and SGA_MAX_SIZE, but
    there are things I don't understand well I think.
    1) SGA_MAX_SIZE is said to be for a life of an
    instance -> But I can change it with alter system set
    sga_max_size=... scope=spfile, restart the database
    and it gets changed. Why?I'm sorry. Your question doesn;t make sense to me ...
    perhaps the confusion is that 'the life of an instance' is from startup to shutdown ... restart and you have a new instance.
    >
    2) Why is exactly SGA_TARGET for? If it's set to a
    non-zero value it's just to indicate we have ASMM
    enabled? SGA_TARGET is written to set total memory
    for SGA. But we can change it dynamically, up to
    SGA_MAX_SIZE, that's why for me SGA_MAX_SIZE looks
    rather for total memory for SGA. It can be changed
    too though...MAX_SIZE is exactly that - the max size. The OS pre-allocates to the max size, BUT some OSs do not need to physically assign the memory that has been allocated. That allows the OS to have pointers to 'memory that needs to be allocated when it's needed'. So the process thinks it has MAX_SIZE available but it ain;t really there. See http://blog.tanelpoder.com/2007/08/28/operating-systems-are-lazy-allocating-memory/
    TARGET is the amount that is allowed to be in use at a specific point in time. It is less than, or equal to MAX_SIZE. A description, including the impact on the auto-allocated sizes, is at http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/initparams192.htm#sthref792
    Therefore, on a 4 GB machine you can have 4 instances each with MAX_SIZE set to 3GB but TARGET set to 800M each. Then, when it's needed, you can back off some to increase one in particular without shutting any down simply by TARGET.
    The really, really confusing part is that some OSs report that the memory is 'in use' simply because is allocated. That makes it appear that we have a problem.

  • Assm question

    Hi experts,
    I was just studying some questions and answers about 11g, the book says "B" is the correct answer, however I think "C".
    What do you think ?
    In Oracle 11g, by default which one of the following conditions implicitly enables Automatic PGA
    Memory Management?
    A. Setting a nonzero value for SGA_TARGET
    B. Configuring Automatic Shared Memory Management
    C. Configuring Automatic Memory Management
    D. Setting a nonzero value for SGA_MAX_SIZE and PGA_AGGREGATE_TARGET
    E. None of the above
    Answer: B

    ASMM
    The Oracle Automatic Shared Memory Management is a feature that automatically readjusts the sizes of the main pools.
    refer to http://www.dba-oracle.com/t_automatic_shared_memory_management.htm
    So you are right . casue it's a 10g future and use to configure SGA.not PGA
    Edited by: Longfei Wei on Jan 26, 2011 8:31 AM

  • SGA_MAX_TARGET and SGA_TARGET

    What is difference b/w these two parameters ?
    If SGA_TARGET= 10G
    SGA_MAX_TARGET=15G
    Which parameter will be used during startup and Why ?
    Any refernce doc aur explanation will be helpful
    Regards
    Sourabh Gupta

    Sourabh85 wrote:
    On Windows XP and db version 10.2.0.4
    I set the SGA_TARGET=500M and SGA_MAX_SIZE= 1024M.
    Started the db and db is started with SGA =1G which means SGA_MAX_SIZE
    SQL> show parameter sga
    NAME TYPE VALUE
    lock_sga boolean FALSE
    pre_page_sga boolean FALSE
    sga_max_size big integer 1G
    sga_target big integer 500M
    SQL> show sga
    Total System Global Area 1073741824 bytes
    Fixed Size 1293588 bytes
    Variable Size 696255212 bytes
    Database Buffers 369098752 bytes
    Redo Buffers 7094272 bytes
    So still the question is what is advantage of setting both parameter in pfile.
    I think the above behavior is related to Windows only.
    Regards
    Sourabh GuptaYou've set it in pfile but the database will read the spfile by deafault..
    So first you need to check if the database is reading from spfile or pfile..
    show parameter spfileif it returns any value then the database is using spfile
    if it doesn't return any value the it is using pfile...

  • WHAT WILL BE SGA_TARGET AND SGA_MAX_SIZE VALUE

    HI ALL
    RAM MEMORY 7360
    swap memory 8704 M
    OS--AIX6
    DATABASE SIZE ---50 GB
    WHAT WILL BE SGA_TARGET AND SGA_MAX_SIZE VALUE

    WHAT WILL BEThe values will be whatever you set them to be. OR sga_max_size will be automatically derived from db_cache_size + shared_pool_size + ............
    yes, I know that you are looking for a "thumb-rule" and your question is "_What *should* be ..."_ You might get many answers.
    The right answer is "what is really required based on the database, i/O pattern, concurrency etc
    Hemant K Chitale

  • SGA_TARGET and DB_CACHE_SIZE

    In my oracle 10g database SGA_TARGET has been enabled and DB_CACHE_SIZE also set
    It will take from SGA_TARGET or DB_CACHE_SIZE ?

    Dear user!
    SGA_TARGET and DB_CACHE_SIZE behave like that:
    DB_CACHE_SIZE:
    - Meaning:
    DB_CACHE_SIZE specifies the size of the DEFAULT buffer pool for buffers with the primary block size (the block size defined by the DB_BLOCK_SIZE initialization
    parameter).
    - Defaultvalue:
    If SGA_TARGET is set: If the parameter is not specified, then the default is 0 (internally determined by the Oracle Database). If the parameter is specified, then
    the user-specified value indicates a minimum value for the memory pool.
    If SGA_TARGET is not set, then the default is either 48 MB or 4MB * number of CPUs * granule size, whichever is greater
    SGA_TARGET
    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
    The memory allocated to these pools is deducted from the total available for SGA_TARGET when Automatic Shared Memory Management computes the values of the automatically tuned memory pools.
    I hope that these informations will help you to answer you question.
    Yours sincerely
    Florian W.

  • QUESTION: Multi-instance memory requirements on Linux

    Hi, all.
    I've been out of the loop on Oracle technical details for awhile, and need to re-educate myself on a few things. I'm hoping someone can point me to a book in the online docs which discusses my question.
    Oracle db 10.2.0.2, on Redhat Linux 2.6.9-67.0.0.0.1. This server is a virtual machine, on a VMWare ESX server.
    My question concerns the utilization of memory resources in a multi-instance environment.
    I currently have 2 instances/dbs on this server. Each was configured with an SGA_TARGET of approximately 900MB. java_pool_size, large_pool_size and shared_pool_size are also assigned values in the pfile, which I believe supersedes SGA_TARGET.
    I am tasked with determining if the server can handle a third instance. It's unclear how much load the database will see, so I don't yet know how much memory I will want to allocate to the shared pool for the buffer cache, etc.
    I wanted to see how much memory was being used by the existing instances, so on the server I attempted to capture memory usage information both before, and after, the startup of the second instance.
    I used 'top' for this, and found that the server has a total of 3.12GB of physical memory. Currently there's about 100MB free physical memory.
    the information from 'top' also indicated that physical memory utilization had actually decreased after I started the second instance:
    Before second instance was started:
    Mem: 3115208k total, 3012172k used, 103036k free, 46664k buffers
    Swap: 2031608k total, 77328k used, 1954280k free, 2391148k cached
    After second instance was started:
    Mem: 3115208k total, 2989244k used, 125964k free, 47144k buffers
    Swap: 2031608k total, 89696k used, 1941912k free, 2320184k cached
    Logging into the instance, I ran a 'show SGA', and got an SGA size of about 900MB (as expected). But before I started the instance, there wasn't anywhere near than amount of physical memory available.
    The question I need to answer is whether this server can accomodate a third instance. I gather that the actual amount of memory listed in SGA_TARGET won't be allocated until needed, and I also understand that virtual memory will be used if needed.
    So rather than just asking for 'the answer', I'm hoping someone can point me to a resource which will help me better understand *NIX memory usage behavior in a multi-instance environment...
    Thanks!!
    DW

    Each was configured with an SGA_TARGET of approximately 900MB. java_pool_size, large_pool_size and shared_pool_size are also assigned values in the pfile, which I believe supersedes SGA_TARGET.
    Not quite. If you set non-zero values for those parameters as well as setting SGA_TARGET, then they act as minimum values that have to be maintained before extra free memory is distributed automatically amongst all auto-tuned memory pools. If you've set them as well as SGA_TARGET, you've possibly got a mish-mash of memory settings that aren't doing what you expected. If it was me, I'd stick either to the old settings, or to the new, and try not to mix them (unless your application is very strange and causes the auto-allocate mechanism to apportion memory in ways you know are wrong, in which case setting a floor below which memory allocations cannot go might be useful).
    3GB of physical memory is not much these days. The general rule is that your total SGAs should not make up more than about 50% of physical memory, because you probably need most of the other 50% for PGA use. But if your users aren't going to be doing strenuous sorting (for example), then you can shrink the PGA requirement and nudge the SGA allowance up in its place.
    At 900MB per SGA, you can have two SGAs and not much user activity. That's 1800MB SGA plus, say, 200MB each PGA = 2200MB, leaving about 800MB for contingencies and Linux itself. That's quite tight and I personally wouldn't try to squeeze another instance of the same size into that, not if you want performance to be meaningful.
    Your top figures seem to me to suggest you're paging physical memory out to RAM already, which can't be good!

Maybe you are looking for

  • G4 TV connection for home theater help

    Just inherited a G4 tower that I'm considering using to play vids on my old school TV (RCA and coax in only). I've been using my Macbook Pro to do this lately. Imagine my surprise when I found that my current DVI/video adapter does not fit the DVI on

  • PHP on Portal 3.0

    Hi Ive got short question. I have to decide whether use Portal 3.0 Is it possible to run PHP on Portal 3.0 ? Thanks null

  • Why Do My Tiger iMac G4s Fail to perform as Target Disks For Each Other

    When Needed, My two Flat Screen iMac G4s could perform as Target Disks for each other, but only before becoming Tiger iMacs. When starting out (at 10.4.6) as Tiger iMacs, they each appeared to be Tiger Target Disks when so instructed, each producing

  • Explain commands

    hi, 1)wht is the effect on using following cmds: alter system alter session alter database how each one differ from each other. 2)when are the situation database shud be mounted. 3)how to identify db startup wth pfile or spfile. 4) what is the differ

  • Business Process Consolidation  7.5 implementation

    Experts, I am going to implement BPC 7.5 release which is very new from SAP. I have going to install on our existing EHP1 BI box. I am very relatively new to this. I need some basic strategy to start the installation. So I need some inputs 1. Do I ne