[ale] shmmax adjustment / oracle SGA

Jeff Lightner jlightner at water.com
Thu Aug 3 13:54:08 EDT 2006


Wow - no responses.  Either the question was really dumb or really
smart.  I'll prefer to think the latter.

 

Didn't find an answer to my first question but since I had 4 GB free
with buffers and cache it seemed it would be sufficient.  I was able to
modify shmmax and the DBAs were able to get the SGA to about the same
size as on the test system without needing to do the reboot.

 

The answer to my last question appears to be that one is limited to 1.7
GB SGA without doing some other magic like lowering the map base address
or enabling a hugemem kernel and other things.  Doing that it seems one
could get about 3.42 GB SGA.  (This limitation is in x86 [32 bit] rather
than x86_64.)

 

Details about a lot of this can be found in the following documentation
tuning for Oracle on Linux:

http://www.puschitz.com/TuningLinuxForOracle.shtml

 

 

________________________________

From: ale-bounces at ale.org [mailto:ale-bounces at ale.org] On Behalf Of Jeff
To: ale at ale.org
Lightner
Sent: Thursday, August 03, 2006 10:10 AM
To: Atlanta Linux Enthusiasts
Subject: [ale] shmmax adjustment / oracle SGA

 

Is there a way to force reduction of preallocated cache and buffers in
memory?

Background to question:

My understanding is that Linux automatically preallocates buffers and
cache so free shows you with and without.

We're planning on dynamically adjusting shmmax from 2 GB to 4 GB (- 1
byte).   This is accomplished by changing the value in /etc/sysctl.conf
then running sysctl -p.  After the change on a test system the Oracle
DBA was still not able to increase settings in his SGA.   On looking at
it I saw free only indicated .75 GB free WITH buffers and cache added
back in so decided a reboot would increase that (system had been up 363
days).   After the reboot the system indicated 7 GB free WITH buffers
and cache and nearly the same without and he was able to increase memory
usage somewhat (though not able to create a segment larger than 1.6 GB).

On the Production system we intend to do this on we currently see in
free:

                   total           used          free     shared
buffers     cached

Mem:      16001392   11511420    4489972          0     272400
10402844

-/+ buffers/cache:          836176   15165216

Swap:      5245096           0          5245096

This gives us about 14 GB without buffers and cache and about 4 GB with
buffers and cache.  The test system didn't have that available before
the boot.   I'm wondering if the limitation was the free with or the
free without given the fact that the former is some 10 GB larger than
the latter.   Mainly I'm trying to determine whether I'll need to plan
for a reboot.

Another question:  Does anyone know how to get the SGA in Oracle to use
a larger segment size than 1.6 GB without setting up a hugemem kernel?
Restated - why wouldn't the SGA be able to create a segment size up the
4 GB (- 1 byte) that shmmax allows for?

Jeffrey C. Lightner

Unix Systems Administrator

DS Waters of America, LP

678-486-3516

-------------- next part --------------
An HTML attachment was scrubbed...




More information about the Ale mailing list