FAQ
Hi

Am trying to setup Oracle's Automatic Shared Memory Mgmt (ASMM) on
Solaris 9 (and 10) and having some issues. Not sure if it is
(i) bug with Oracle
(ii) bug with Solaris 9,
(iii) I screwed up or
(iv) my understanding/assumption is wrong

O/S: Solaris 9(SPARC)
Oracle: 10.1.0.4 (64bit)

spfile has:

SGA_MAX_SIZE=500M
SGA_TARGET=200M

I thought that with the above, oracle will startup with 200M SGA and
_only_ 200M of System memory is allocated. You then have the ability to
dynamically increase it (using ALTER SYSTEM SET sga_target=xxx ) up to
SGA_MAX_SIZE.

Q. Is the above assumption correct?

Some stats and information

# -------------------------------------

# Get Memory Information from Oracle

# -------------------------------------

% sysresv OEM10G

IPC Resources for ORACLE_SID "OEM10G" :
Shared Memory:

ID KEY
7040 0x629dc97c

^^^^

Semaphores:

ID KEY
4718614 0xdf751d7c

Oracle Instance alive for sid "OEM10G"

# -------------------------------------

# Get Memory allocated to Oracle

# -------------------------------------
% ipcs -a | grep 7040
m 7040 0x629dc97c --rw-r----- oracle dba oracle dba 18 524296192 19547 23979 15:22:46 15:22:46 14:59:24
^^^^ ^^^^^^^^^

Notice that it has allocated 500M of memory. I was expecting it to be 200M

% ps -ef | grep dism

root 23069 1 0 14:59:25 ? 0:00 ora_dism_OEM10G

THis shows Oracle's DISM is running.

Q1. When you set SGA_MAX_SIZE=500M and SGA_TARGET_SIZE=200M,

on startup does Solaris allocate 200M or 500M?

# ==========================

# More information

# ==========================

SQL> show sga

Total System Global Area 524288000 bytes

Fixed Size 1303456 bytes
Variable Size 388242528 bytes
Database Buffers 134217728 bytes
Redo Buffers 524288 bytes

SQL> show parameter sga

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 500M
sga_target big integer 200M

Q2. Does setting SGA_MAX_SIZE make the Shared Memory non-pagable?
see reply from Howard Rogers & Nuno
http://www.webservertalk.com/archive149-2004-8-333787.html
Also Oracle's manual - http://download-west.oracle.com/docs/html/B10812_01/appendix_e.htm#sthref830
Intimate Shared Memory

On Solaris systems, Oracle Database uses Intimate Shared Memory (ISM)
for shared memory segments because it shares virtual memory resources
between Oracle processes. ISM causes the physical memory for the entire
shared memory segment to be locked automatically.
On Solaris 8 and Solaris 9 systems, dynamic/pageable ISM (DISM) is
available. This enables Oracle Database to share virtual memory
resources between processes sharing the segment, and at the same time,
enables memory paging. The operating system does not have to lock down
physical memory for the entire shared memory segment.

Q3. How does one proof or disproof that Solaris has Dynamic memory allocation enabled?


PS: System has been patch and read the following refernece
Enabling Dynamic SGA on Solaris platform - Doc ID: 151222.1
SUN bug. 4675878

Search Discussions

  • Powell, Mark D at Jun 24, 2005 at 9:19 am
    Depending on the platform SGA_MAX_SIZE of shared memory will be
    allocated at instance startup. And as you can see Solaris 9 on SPARC is
    one of those platforms. As such it makes no sense to have different
    values for SGA_TARGET and SGA_MAX_SIZE on those platforms.


    HTH -- Mark D Powell --


    From: oracle-l-bounce_at_freelists.org
    On Behalf Of Tony Jambu
    Sent: Friday, June 24, 2005 7:06 AM
    To: Oracle-L_at_freelists.org
    Subject: 10g DISM on Solaris

    Hi

    Am trying to setup Oracle's Automatic Shared Memory Mgmt (ASMM) on
    Solaris 9 (and 10) and having some issues. Not sure if it is
    (i) bug with Oracle
    (ii) bug with Solaris 9,
    (iii) I screwed up or
    (iv) my understanding/assumption is wrong

    O/S: Solaris 9(SPARC)
    Oracle: 10.1.0.4 (64bit)

    spfile has:

    SGA_MAX_SIZE=500M
    SGA_TARGET=200M

    I thought that with the above, oracle will startup with 200M SGA and
    _only_ 200M of System memory is allocated. You then have the ability to
    dynamically increase it (using ALTER SYSTEM SET sga_target=xxx ) up to
    SGA_MAX_SIZE.

    Q. Is the above assumption correct?

    Some stats and information

    # -------------------------------------

    # Get Memory Information from Oracle

    # -------------------------------------

    % sysresv OEM10G

    IPC Resources for ORACLE_SID "OEM10G" :
    Shared Memory:

    ID KEY
    7040 0x629dc97c

    ^^^^

    Semaphores:

    ID KEY
    4718614 0xdf751d7c

    Oracle Instance alive for sid "OEM10G"

    # -------------------------------------

    # Get Memory allocated to Oracle

    # -------------------------------------
    % ipcs -a | grep 7040
    m 7040 0x629dc97c --rw-r----- oracle dba oracle
    dba 18 524296192 19547 23979 15:22:46 15:22:46 14:59:24
    ^^^^
    ^^^^^^^^^

    Notice that it has allocated 500M of memory. I was expecting it to be
    200M

    % ps -ef | grep dism

    root 23069 1 0 14:59:25 ? 0:00 ora_dism_OEM10G

    THis shows Oracle's DISM is running.

    Q1. When you set SGA_MAX_SIZE=500M and SGA_TARGET_SIZE=200M,

    on startup does Solaris allocate 200M or 500M?

    # ==========================

    # More information

    # ==========================

    SQL> show sga

    Total System Global Area 524288000 bytes

    Fixed Size 1303456 bytes
    Variable Size 388242528 bytes
    Database Buffers 134217728 bytes
    Redo Buffers 524288 bytes

    SQL> show parameter sga

    NAME TYPE VALUE
    ------------------------------------ -----------
    ------------------------------
    lock_sga boolean FALSE
    pre_page_sga boolean FALSE
    sga_max_size big integer 500M
    sga_target big integer 200M

    Q2. Does setting SGA_MAX_SIZE make the Shared Memory non-pagable?
    see reply from Howard Rogers & Nuno
    http://www.webservertalk.com/archive149-2004-8-333787.html
    Also Oracle's manual -

    http://download-west.oracle.com/docs/html/B10812_01/appendix_e.htm#sthre
    f830

    Intimate Shared Memory

    On Solaris systems, Oracle Database uses Intimate Shared
    Memory (ISM)

    for shared memory segments because it shares virtual
    memory resources

    between Oracle processes. ISM causes the physical memory
    for the entire

    shared memory segment to be locked automatically.


    On Solaris 8 and Solaris 9 systems, dynamic/pageable ISM
    (DISM) is

    available. This enables Oracle Database to share virtual
    memory

    resources between processes sharing the segment, and at
    the same time,

    enables memory paging. The operating system does not
    have to lock down

    physical memory for the entire shared memory segment.



    Q3. How does one proof or disproof that Solaris has Dynamic memory
    allocation enabled?


    PS: System has been patch and read the following refernece
    Enabling Dynamic SGA on Solaris platform - Doc ID: 151222.1
    SUN bug. 4675878

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouporacle-l @
categoriesoracle
postedJun 24, '05 at 7:11a
activeJun 24, '05 at 9:19a
posts2
users2
websiteoracle.com

2 users in discussion

Tony Jambu: 1 post Powell, Mark D: 1 post

People

Translate

site design / logo © 2022 Grokbase