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: What is the Max Size of SGA i can Have

Re: What is the Max Size of SGA i can Have

From: Kenneth C Stahl <BlueSax_at_Unforgettable.com>
Date: Tue, 07 Dec 1999 11:27:04 -0500
Message-ID: <384D3558.EE98EA87@Unforgettable.com>


Srini wrote:
>
> Does any one know what is the MAX Size of SGA i Can have on my sun os5.6
> machine

Find out the value set for the shared memory availability in the OS (SHMMAX). I think that this is in
/etc/conf/cf.d/stune on SunOS 5.6. This is the total amount of memory that can be used for shared memory segments.

Next, use "ipcs -a" to list all current shared memory segments and add up the total amount of memory used by shared memory segments other than oracle.

Subtract this figure from the first figure. What you have left will be the amount of memory that you can potentially use for Oracle.

However, there are lots of gotcha's here. It is quite possible that at any discrete moment in time that the shared memory segments that you see with ipcs may not represent all shared memory segments that are used by all applications on your system. You may have applications that only run at certain times which need shared memory segments, so you don't want to use up all available shared memory with Oracle unless you absolutely know that nothing else needs shared memory. On the other hand, ipcs may show shared memory segments which were created by an application that has long since exited but which did not clean up after itself and therefore didn't delete a segment that it created. You'd have to really know what is running on your box to figure such things out.

A general rule of thumb that I have heard is that SHMMAX should be set at 80% of physical memory and that you should never exceed 50% of that amount unless you absolutely know that you will not have any conflicts. At the same time, keep in mind that most systems use memory that is not dedicated to shared memory segments and which is not currently being used to run application is used for cache. The ability to cache things in memory is directly related to system efficiency, so if you use up all of your memory between current applications and shared memory you will probably be swapping your system to death. Just remember, the fact that you set SHMMAX to 80% of physical memory doesn't mean that the memory is dedicated to shared memory segments - just that it is available if you want to use it. Whatever you don't use is used for other purposes, so it isn't wasted.

On the other hand, don't increase shared_pool_size just because you can. Do it if you can demonstrate that database performance would be increased if the SGA were larger. Remember, your database is seldom the only thing running on a server and you should only take your fair share of resources. Received on Tue Dec 07 1999 - 10:27:04 CST

Original text of this message

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