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

  • From: "Matthew Zito" <mzito@xxxxxxxxxxx>
  • To: <Jon.Crisler@xxxxxxx>, <oracle-l@xxxxxxxxxxxxx>
  • Date: Wed, 29 Jul 2009 01:19:43 -0400

Solaris, perhaps just as of Solaris 10, uses an aggressive swap allocation 
method for at least shared memory segments.  So, for every meg of SGA, it 
pre-allocates a block of swap space.

When I'm back in the office/home next week, I'll see if my solaris kernel 
internals book has anything more informative.

Thanks,
Matt


-----Original Message-----
From: oracle-l-bounce@xxxxxxxxxxxxx on behalf of Crisler, Jon
Sent: Tue 7/28/2009 7:31 PM
To: oracle-l@xxxxxxxxxxxxx
Subject: Solaris 10 and Oracle 10g - swap space problem
 
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


Other related posts: