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

From: Matthew Zito <>
Date: Wed, 29 Jul 2009 01:19:43 -0400
Message-ID: <>

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.


-----Original Message-----

From: on behalf of Crisler, Jon Sent: Tue 7/28/2009 7:31 PM
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

-- Received on Wed Jul 29 2009 - 00:19:43 CDT

Original text of this message