Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Mailing Lists -> Oracle-L -> RE: Solaris 10 shmmax

RE: Solaris 10 shmmax

From: Mark W. Farnham <>
Date: Mon, 26 Mar 2007 15:58:36 -0400
Message-ID: <05af01c76fe1$24cedd10$>

Ahem. If I recall correctly is was true when Bob wrote it sometime in 2000 and it might have still been true when it was published in January 2001. Then some engineer inside Sun said, "Why the heck do we disable ISM just because it is multiple chunks" and it was fixed before Steve was testing and writing about it in July. Remember too that Solaris 8 was the newest release.  

I'm really not sure after this long about ISM behavior at that vintage. But a general comment about the limits: All those Unix "requirements" were listed as exact settings for at least a decade after they meant to write them as minimum settings, but that was the day of paper printed manuals for one thing and not that important in the opinion of the manual writers for another.  

Unless there is a specific reason to carve the SGA up a particular architecture, there is no reason to carve it up and likewise there is no particular reason to have a cow if it is in multiple chunks.  

OLD writings to the contrary were based on a lot of obsolete facts and rumors. Paging real shared memory never made any sense at all to me, and imagine my surprise when segmented shared memory was consolidated for batched paging in a chunk crossing segment boundaries and then when it paged back in (why in the world page it back in? even less sense than paging it out in the first place, but it used to happen) it came back in a the starting address of the first piece and wrote back for the consolidated length. Now imagine it actually working until some time when you started two databases simultaneously and managed to get interleaved shm allocations from two different databases, and a consolidated pagein nicely overwrote a segment from the wrong database. That bug didn't endure long even in a beta OS release, but it sure made the advice to make shmmax big enough to contain the SGA in one piece a no brainer. (Kevin might remember the exact details of that one better than me - is was not Sun, and the decade was either 80's or 90's, not 2000's.)  

I'll copy Bob so he can give us all an update on what is best as of today.

From: [] On Behalf Of Bobak, Mark
Sent: Monday, March 26, 2007 2:37 PM
To:; Kevin Closson;;
Subject: RE: Solaris 10 shmmax  

Yeah, I'm familiar w/ Bob's paper. Bob actually got it wrong, as you can see if you follow the link to Steve Adams' site that you provided, and actually read what's written there......  

Mark J. Bobak 
Senior Oracle Architect 

"There are 10 types of people in the world:  Those who understand binary,
and those who don't." 



From: [] On Behalf Of Hameed, Amir Sent: Monday, March 26, 2007 1:31 PM To: Kevin Closson;; Subject: RE: Solaris 10 shmmax U are probably right Kevin that this feature should not be disabled unless there is an absolute reason not to use it. There was a paper written by Bob Sneed a while ago where he had stated that multiple shared memory segments can impact performance. Steve Adams has also quoted him on his site: Bob's white paper: This may not be an issue anymore.
From: Kevin Closson [] Sent: Monday, March 26, 2007 1:22 PM To: Hameed, Amir;; ax.mount_at_GMAIL.COM; Subject: RE: Solaris 10 shmmax I would also like to understand this a little better. One of my friends is running on Solaris9 and Sun 6900. His shmmax is set to 20G and has 64GB RAM on the server and this is the only instance running on that box. He is seeing multiple shared memory segments on the server. Oracle told him to disable _enable_NUMA_optimization parameter which is enabled by default. .why? Why turn off the ability for Oracle to exploit the hardware acrchitecture? Is the output of ipcs so disturbing due to multiple segements? That just sounds like concern over nothing. --
Received on Mon Mar 26 2007 - 14:58:36 CDT

Original text of this message