DISM usage is Oracle

Last updated on November 23rd, 2015 at 06:13 am

DISM usage is Oracle

Oracle database uses shared memory segment to facitilate many things in the database. Shared memory segment consist of SGA which has buffer cache ,shared pool etcThe shared memory segments is managed either using ISM or DISM in Solaris and Linux

ISM stands for Intimate Shared Memory
DISM stands for Dynamic Intimate Shared Memory

The ISM is a shared memory segment that consists of large locked memory pages. The ISM number of locked pages remains constant or unchanged. Dynamic ISM (DISM) is pageable ISM shared memory, where the number of locked pages is variable or changeable. Therefore, the DISM supports releasing or adding more physical memory to the system during dynamic reconfiguration. The size of the DISM can span available physical memory plus disk swap

Dynamic Intimate Shared Memory (DISM) allows a database to dynamically extend or reduce the size of the shared data segment. This feature eliminates the misconfiguration problem and denial-of-service security vulnerability of Intimate Shared Memory (ISM).

DISM is turned on by default for Oracle
Database on Oracle Solaris, which makes it important for Database
Administrators (DBAs) to understand its capabilities and behavior. as it relates
to the memory_target parameters

Some important points to note
1)Oracle recommends that DISM be turned off by default on SPARC-based servers.


2) Oracle recommends that DISM should always be turned off on
x86-based systems running Oracle Solaris 10.
DISM is set if memory_target or memory_max_target are set or sga_max_size is set and is greater then sum of all the SGA memory components
How to see if the Database is using DISM
We can find it out using pmap command
1) First search the pid for the Oracle smon process
ps -aef | grep ora | grep smon
oracle 1111 1 0 08:34:13 ? 0:45 ora_smon_TEST
2) Now find out ISM or DISM using the below command
pmap –xs 1111 | egrep ‘ism|osm’
It will show like this in case it is using DISM
000000756880000000 38010880 38010880 – 38010880 100M rwxsR [ dism shmid=0xb ]
0000000C90000000   131072 131072   –   131072   4M rwxsR [ dism shmid=0xb ]
0000000C98000000       16     16   –       16   8K rwxsR [ dism shmid=0xb ]
It will show like this in case it is using ISM
0000000380000000 38010880 38010880 – 38010880 1000M rwxsR [ ism shmid=0xb ]
0000000C90000000 131072 131072 – 131072 4M rwxsR [ dism shmid=0xb ]
0000000C98000000 16 16 – 16 8K rwxsR [ ism shmid=0xb ]

Leave a Reply