Re: Solaris 10 and Oracle 10g - swap space problem

  • From: David Miller <David.J.Miller@xxxxxxx>
  • To: Jon.Crisler@xxxxxxx
  • Date: Wed, 29 Jul 2009 08:47:43 -0500

Hi Jon,

I suspect you are using DISM instead of ISM for the shared memory segments.
DISM is backed by SWAP space while ISM is not.  You can check this by doing
"pmap -xs PID" for some PID of some Oracle process (like lgwr).  For the
shared segments, it will have either "ISM" or "DISM" on the right indicating
the type of memory.  If it's DISM, that's why SWAP is used.

As someone else mentioned, this will happen if you set "sga_max_size" to a
larger value than the static allocations + db_block_buffers.

There's a brief discussion of DISM at:
http://www.solarisinternals.com/wiki/index.php/Dynamic_ISM

And again as someone else said, it just allocates the space in SWAP but
should never use it (unless you come under severe memory pressure at
some point).

Regards,

Dave Miller

Crisler, Jon wrote, On 07/28/09 18:31:
On Solaris 10, when I start my databases, I see my swap space usage increase in a one for one ratio with memory utilization. System has 64gb of memory. If I start up a 4gb database, I see 4gb of real memory used and 4gb of swap space used up as well (as shown by top, swap –l, swap –s etc.). This is purely a Oracle database server, and /etc/system and projects / resource controls seem to be set up, so I do not understand why swap is being touched. If I stop all oracle processes, swap drops down to about 100 Mb used.

I have taken great pains to make sure that NO swap is being used, yet any little allocation of Oracle gets tossed into swap. I don’t know where to look after this- I would have suspected /etc/system or resource control / projects to be at fault, or /etc/security (ulimits) but everything looks ok. The system has 64g real, and about 54 gb swap- if I get close to 54gb memory allocated oracle will return out of memory errors.. Needless to say the system crawls.

What am I overlooking ? TOP and swap –s / swap –l agree so its not a TOP anomaly

Example from TOP – I have 20g free, so why so much used in swap ?

load averages: 0.64, 0.57, 0.46 00:26:34

1073 processes:1071 sleeping, 2 on cpu

CPU states: 98.3% idle,  1.2% user,  0.5% kernel,  0.0% iowait,  0.0% swap

Memory: 64G real, 20G free, 40G swap in use, 17G swap free

   PID USERNAME LWP PRI NICE  SIZE   RES STATE    TIME    CPU COMMAND

  1997 oracle     1  39    0 4376K 2592K cpu/50   0:02  0.04% top

  3454 oracle     1  52    0   16G   16G cpu/32   0:00  0.03% oracle

  3456 oracle     1  24    0   16G   16G sleep    0:00  0.03% oracle

 18589 oracle     1  59    0   16G   16G sleep    0:13  0.02% oracle

Swap –s total: 39170184k bytes allocated + 2262264k reserved = 41432448k used, 18017608k available

--
//www.freelists.org/webpage/oracle-l


Other related posts: