Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Dynamic SGA and pinned

Re: Dynamic SGA and pinned

From: Connor McDonald <connor_mcdonald_at_yahoo.com>
Date: Tue, 03 Aug 2004 20:08:43 +0800
Message-ID: <410F804B.5994@yahoo.com>


Howard J. Rogers wrote:
>
> "Erik Hendrix" <hendrix_erik_at_hotmail.com> wrote in message
> news:3UxPc.134326$vJ6.98459_at_cyclops.nntpserver.com...
> > Hi,
> >
> > I have a question regarding Oracle 10g and it's dynamic SGA. We are
> > currently evaluating different hardware platforms as well as database
> > platform. Dynamic configuration is an important part for us.
> > I understand that on Solaris, one can set a Oracle parameter
> (SGA_MAX_SIZE?)
> > to a maximum value. Oracle can then use DISM to pin into memory what it
> > currently needs and leave in swap space what it does not need.
> > This would allow us to set it for example to 32GB but only use 4GB. When
> we
> > then give the host more memory, we can then increase Oracle's active SGA
> and
> > it will start pinning more memory into RAM.
> >
> > I'm wondering what the deal is on AIX and HP-UX? Does Oracle pin the SGA
> > into RAM on these platforms? If it does, how does it work with dynamic
> > configuration? Will it like on Sun allocate all the memory but only pin
> what
> > is currently required?
> >
> > Thanks.
>
> There may be subtleties about the way Solaris uses memory that I am unaware
> of, but as far as I know, if you set SGA_MAX_SIZE on any platform to a given
> value, then that amount of RAM is immediately 'stolen' from the operating
> system and allocated to Oracle's own exclusive use. That large chunks of
> that shared memory segment are not *actually* used, because your
> shared_pool_size or db_cache_size are set to low amounts is irrelevant: the
> large shared memory segment has nevertheless been allocated to Oracle's use
> from the total pool of available physical RAM, and hence that RAM is not
> available for any other programs running on that server to make use of.
>
> If you set SGA_MAX_SIZE to 32GB, which seems awfully ambitious btw, then
> 32GB is what will be used in the sense of 'Oracle's pinched the lot and
> nothing else can make use of it'. If your actual cache sizes then happen
> only to chew up 4GB of that allocation, that simply means that 28GB of RAM
> sit there, idly, being (effectively) wasted.
>
> There is nothing actually dynamic about Oracle's SGA, in other words. Caches
> *within* the SGA can be resized dynamically (and automatically in 10g). But
> the overall memory allocation within which that happens is static and
> manual. Still.
>
> Regards
> HJR
(Without proof...) I think Solaris is the exception to the rule. sga_max_size I think has to be allocated within swap but not within physical memory thus allowing a "genuine" resize facility.

hth
connor

-- 
Connor McDonald
Co-author: "Mastering Oracle PL/SQL - Practical Solutions"
ISBN: 1590592174

web: http://www.oracledba.co.uk
web: http://www.oaktable.net
email: connor_mcdonald_at_yahoo.com

Coming Soon! "Oracle Insight - Tales of the OakTable"

"GIVE a man a fish and he will eat for a day. But TEACH him how to fish,
and...he will sit in a boat and drink beer all day"

------------------------------------------------------------
Received on Tue Aug 03 2004 - 07:08:43 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US