RE: Solaris 10 shmmax

  • From: "Mark W. Farnham" <mwf@xxxxxxxx>
  • To: <Mark.Bobak@xxxxxxxxxxxxxxx>, <Amir.Hameed@xxxxxxxxx>, "'Kevin Closson'" <kevinc@xxxxxxxxxxxxx>, <ax.mount@xxxxxxxxx>, <oracle-l@xxxxxxxxxxxxx>
  • Date: Mon, 26 Mar 2007 15:58:36 -0400

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: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx]
On Behalf Of Bobak, Mark
Sent: Monday, March 26, 2007 2:37 PM
To: Amir.Hameed@xxxxxxxxx; Kevin Closson; ax.mount@xxxxxxxxx;
oracle-l@xxxxxxxxxxxxx
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 
ProQuest/CSA 

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

 

 

  _____  

From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx]
On Behalf Of Hameed, Amir
Sent: Monday, March 26, 2007 1:31 PM
To: Kevin Closson; ax.mount@xxxxxxxxx; oracle-l@xxxxxxxxxxxxx
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:

http://www.ixora.com.au/q+a/0107/04120647.htm

 

Bob's white paper:

http://www.sun.com/blueprints/0101/SunOracle.pdf

 

This may not be an issue anymore.

 


  _____  


From: Kevin Closson [mailto:kevinc@xxxxxxxxxxxxx] 
Sent: Monday, March 26, 2007 1:22 PM
To: Hameed, Amir; kevinc@xxxxxxxxxxxxx; ax.mount@xxxxxxxxx;
oracle-l@xxxxxxxxxxxxx
Subject: RE: Solaris 10 shmmax

 

I would also like to understand this a little better. One of my friends is
running 10.2.0.2 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.

 

Other related posts: