RE: 10g DISM on Solaris

  • From: "Powell, Mark D" <mark.powell@xxxxxxx>
  • To: <tjambu_freelists@xxxxxxxxxxxx>, <Oracle-L@xxxxxxxxxxxxx>
  • Date: Fri, 24 Jun 2005 08:28:21 -0400

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@xxxxxxxxxxxxx
[mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Tony Jambu
Sent: Friday, June 24, 2005 7:06 AM
To: Oracle-L@xxxxxxxxxxxxx
Subject: 10g DISM on Solaris 


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: (64bit)

spfile has:

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

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

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

% 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
        Also Oracle's manual -
        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
                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 

Other related posts: