Hmm... Solaris 10 may be doing something different here. I last tested on Solaris 8 and I'm pretty sure things worked like I said with it. On the other hand, Solaris 8 was released over 10 years ago :) Time to remember Jonathan Lewis'es article which had something like this in it: "If a claim about some software behavior doesn't have a version number with it, don't trust it" :) I think this thing needs some testing and elaboration. I'll do some checking and will get back with details soon ;-) -- Tanel Poder http://blog.tanelpoder.com On Sun, Aug 2, 2009 at 1:01 AM, Riyaj Shamsudeen <riyaj.shamsudeen@xxxxxxxxx > wrote: > Tanel > I must disagree with you. It looks like swap is allocated even for ISM > pages in Solaris. Please feel free to correct me if there is any > misunderstanding from my part. > > Here is a small test case: > > RS: Intially, 7.4G of swap used > swap -s > total: 7207256k bytes allocated + 233128k reserved = 7440384k used, > 40446656k available > > RS: ISM in use and SGA is locked as expected. > Address Kbytes RSS Anon Locked Mode Mapped > File > .. > 0000000380000000 6422544 6422544 - 6422544 rwxsR [ ism > shmid=0x300001c ] > > RS: No sga_max_size set in spfile either. > > strings spfilePROD.ora |grep -i sga > *.sga_target=6272M > > RS: Shutting down... > sqlplus "/ as sysdba" > > Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit > Production > With the Partitioning, Real Application Clusters, OLAP, Data Mining > and Real Application Testing options > > SQL> shutdown immediate; > Database closed. > Database dismounted. > ORACLE instance shut down. > SQL> > > RS: Just 500M of swap used after instance shutdown.. > wsqfinc1e> swap -s > total: 451224k bytes allocated + 63928k reserved = 515152k used, 47400568k > available > > RS: Restarting instance.. > ORACLE instance started. > > Total System Global Area 6576668672 bytes > Fixed Size 2050464 bytes > Variable Size 2583696992 bytes > Database Buffers 3976200192 bytes > Redo Buffers 14721024 bytes > Database mounted. > Database opened. > > RS: Swap is back to 7.32GB > swap -s > total: 7135384k bytes allocated + 191968k reserved = 7327352k used, > 40566696k available > > RS: Still ISM.. > Address Kbytes RSS Anon Locked Mode Mapped > File > ... > 0000000380000000 6422544 6422544 - 6422544 rwxsR [ ism > shmid=0x3000048 ] > > Even though, ISM is in use and sga_max_size is not in use, swap is > allocated. > > > Cheers > > Riyaj Shamsudeen > Principal DBA, > Ora!nternals - http://www.orainternals.com > Specialists in Performance, Recovery and EBS11i > Blog: http://orainternals.wordpress.com > > > > On Sat, Aug 1, 2009 at 12:51 AM, Tanel Poder <tanel@xxxxxxxxxx> wrote: > >> If you use ISM (when SGA_MAX_SIZE = SGA_TARGET or when SGA_MAX_SIZE is >> unset in parameter file) then all SGA pages are locked in physical memory >> (by OS VM design) - thus no swap space needs to be reserved as the pages in >> memory aren't pageable. >> >> If you are using DISM (when SGA_MAX_SIZE > SGA_TARGET) then SGA is using >> pageable large pages in Solaris (which are individually locked in physical >> memory by Oracle's mlock requests). But as the pages are essentially >> pageable, swap space needs to be reserved when SGA is created. >> >> If you want to avoid your SGA causing the swap space reservation, unset >> your SGA_MAX_SIZE parameter. >> >> I have mentioned this on this blog entry (and in the comments section >> there's a link to a Solaris kernel internals presentation): >> >> >> http://blog.tanelpoder.com/2007/08/28/operating-systems-are-lazy-allocating-memory/ >> >> -- >> Tanel Poder >> http://blog.tanelpoder.com >> >> >> >> On Wed, Jul 29, 2009 at 7: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 >>> >> >> >> >> -- >> Tanel Poder >> http://blog.tanelpoder.com >> >> > -- Tanel Poder http://blog.tanelpoder.com