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

  • From: "Crisler, Jon" <Jon.Crisler@xxxxxxx>
  • To: "Mathias Magnusson" <mathias.magnusson@xxxxxxxxx>
  • Date: Wed, 29 Jul 2009 10:41:27 -0400

I never use lock_sga  - its one of those things that I had the feeling
should only be used in special cases, which I never ran into.

 

________________________________

From: mathiasmag@xxxxxxxxx [mailto:mathiasmag@xxxxxxxxx] On Behalf Of
Mathias Magnusson
Sent: Wednesday, July 29, 2009 2:42 AM
To: Crisler, Jon
Cc: oracle-l@xxxxxxxxxxxxx
Subject: Re: Solaris 10 and Oracle 10g - swap space problem

 

It makes the reservation, but if you have memory it would not use it.
You just end up wasting some disk for swap you'll never use. If you
increase Swap above 64 GB, does it work? Why would it crawl now? Fail
for some DBs, but if you never use Swap, then allocation of it should
not impact performance. Look at memory pressure to make sure the server
never does pagescans - sr column i vmstat - of any real magnutude (over
200 is probably not desireable in production).

 

Also, would the parameter lock_sga have any effect in Solaris? I've
never tested it, but in theory it would pin SGA in real memory and never
let it go to Swap, which also would mean that it should not reserve it.
It's one of those parameter I've meant to play with, but I've never
gotten around to actually test the effect.

 

Mathias

On Wed, Jul 29, 2009 at 1:31 AM, Crisler, Jon <Jon.Crisler@xxxxxxx>
wrote:

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: