RAC+Solaris+使用DISM 可能引…

时间:2022-07-06 16:42:33

先查看是否使用了DISM

 

bash-3.00# pmap -xs 3178|grep ism
0000000380000000    196608    196608            196608   4MrwxsR    [ ismshmid=0x1200007f ]
00000003C0000000  33357824  33357824          33357824   4MrwxsR    [ ismshmid=0x13000000 ]
0000000BC0000000        24        24                24   8KrwxsR    [ ismshmid=0x13000003 ]
bash-3.00# pmap -xs 3178|grep ism
0000000380000000    196608    196608            196608   4MrwxsR    [ ismshmid=0x1200007f ]
00000003C0000000  33357824  33357824          33357824   4MrwxsR    [ ismshmid=0x13000000 ]
0000000BC0000000        24        24                24   8KrwxsR    [ ismshmid=0x13000003 ]

 

--以上说明DISM未使用

 

bash-3.00#  pmap -xs 6809|grep ism

 

0000000B18000000   2035712   2035712                   4Mrwxs-    [ dismshmid=0x11000017 ]
0000000B94400000     36864                            -rwxs-    [ dismshmid=0x11000017 ]
0000000B96800000     28672     28672                   4Mrwxs-    [ dismshmid=0x11000017 ]
0000000B98400000     16384                            -rwxs-    [ dismshmid=0x11000017 ]
0000000B99400000     49152     49152                   4Mrwxs-    [ dismshmid=0x11000017 ]
0000000B9C400000     40960                            -rwxs-    [ dismshmid=0x11000017 ]
0000000B9EC00000     24576     24576                   4Mrwxs-    [ dismshmid=0x11000017 ]
........

 

--以上说明DISM在使用

 

禁用DISM方法:

 

To proactively avoid/prevent the issues associated with DISM, itis highly recommended to disable the use of DISM on ALL instanceshaving an SGA larger than 4GB by either unsetting the SGA_MAX_SIZE/ MEMORY_MAX_TARGET / MEMORY_TARGET parameters, or ensureSGA_MAX_SIZE is set to the same value as SGA_TARGET parameter orequal to the sum of all sga components in theinstance.  For a detailed description of DISMplease see Document 1472108.1.

 

参考文档:

 

RAC+Solaris+使用DISM 可能引…转到底部 RAC+Solaris+使用DISM 可能引…

2014-3-11RAC+Solaris+使用DISM 可能引…PROBLEMRAC+Solaris+使用DISM 可能引…
RAC+Solaris+使用DISM 可能引…RAC+Solaris+使用DISM 可能引… RAC+Solaris+使用DISM 可能引…RAC+Solaris+使用DISM 可能引… RAC+Solaris+使用DISM 可能引…RAC+Solaris+使用DISM 可能引… RAC+Solaris+使用DISM 可能引…RAC+Solaris+使用DISM 可能引…
RAC+Solaris+使用DISM 可能引…

In this Document

Symptoms
Changes
Cause
Solution
References

Applies to:

Oracle Database - Enterprise Edition - Version 10.2.0.5 to 12.1.0.1[Release 10.2 to 12.1]
Oracle Solaris on x86-64 (64-bit)
Oracle Solaris on SPARC (64-bit)

Symptoms

The use of DISM on Solaris systems (SPARC and x86-64) outside ofthe ASM instance can lead to several different issues ranging fromexcessive swap usage even when memory is available to kernel panicsto performance problems. It has been determined by engineering thatthe ASM instance is typically such a small memory footprint that itshould not cause an issue.

From a Database and/or Clusterware perspective the Symptomsinclude:

  • Overall Poor Performance including login problems
  • Processing Delays Resulting in IPC errors
  • Instance Evictions
  • Node Evictions

From a system perspective the Symptoms include:

  • High System Time (often exceeding 50%)
  • GUDs will show numerous threads in the ipc_get system call
  • Excessive swap usage
  • Kernel Panics

Changes

 N/A

Cause

This is due to use of Dynamic Intimate Shared Memory (DISM) onSolaris, see the Oracle Database Administrator's Reference 11gRelease 2 (11.2) for Linux and UNIX-Based Operating Systems,Appendix D 'Administering Oracle Database on Solaris' for moreinformation.

The use of DISM requires that all or part of the SGA memoryallocation be reserved in swap space as well as held in memory toallow the SGA to dynamically re-size .  DISM isactivated automatically in Oracle when the value of theSGA_MAX_SIZE initialization parameter is larger than the sum of allSGA components combined or larger than value of SGA_TARGET. Thisenables Oracle Database to lock only the amount of physical memorythat is currently being used in physical memory. In 11g, DISM isalso activated by the setting of MEMORY_TARGET or MEMORY_MAX_TARGETin the same way as above.

 

Solution

To determine if DISM is is in use the PMAP utility may beused:

If DISM is in use:

# pmap -xs |grep ism
...
0000000580000000 4194304 4194304 - - -2G rwxs- [dism shmid=0x4 ]
...

If DISM is not in use:

# pmap -xs |grep ism
..
0000000380800000 4096 4096 - 4096 4M rwxsR [ ismshmid=0x700004d ]

 

To proactively avoid/prevent the issues associated with DISM, itis highly recommended to disable the use of DISM on ALL instanceshaving an SGA larger than 4GB by either unsetting the SGA_MAX_SIZE/ MEMORY_MAX_TARGET / MEMORY_TARGET parameters, or ensureSGA_MAX_SIZE is set to the same value as SGA_TARGET parameter orequal to the sum of all sga components in theinstance.  For a detailed description of DISMplease see Document 1472108.1.