Re: Large SGA in Solaris

  • From: Charles Schultz <sacrophyte@xxxxxxxxx>
  • To: exriscer@xxxxxxxxx
  • Date: Fri, 8 May 2009 07:15:32 -0500

Just to add to that, the swap space for DISM has to be backed by disk. We
found this through trial and testing. =) Just throwing up some ramfs is not
good enough. I am not exactly sure why this is, as I have not yet fully
understood the whitepapers that Sun and Oracle both provided.

On Fri, May 8, 2009 at 06:37, Tanel Poder <tanel@xxxxxxxxxx> wrote:

>  Oracle uses large pages (ISM) by default on solaris, so you'll get 4MB or
> larger pages on SPARC. ISM/DISM pagetables are sharable so you shouldn't
> have any kernel memory overhead problems.
>
> You can verify the pagesizes used by running pmap -x*s* on an Oracle
> server process.
>
> One thing about swap space. If you use dynamic ISM (pageable large pages),
> then Oracle needs to reserve swap space in amount of your SGA. Thus you need
> *at least* 50GB of swap space + probably some more.
> With ISM (non-pageable large pages). Dynamic ISM is enabled when your
> SGA_MAX_SIZE > SGA_TARGET during startup. You could set the values the same
> (or unset SGA_MAX_SIZE entirely) to get non-dynamic ISM and avoid needing to
> configure so much swap. This will also mean that if the next DBA enables
> SGA_MAX_SIZE in the future then the instance won't start if there's not
> enough swap.
>
> With pageable large pages there can be one more issue - physical memory
> fragmentation when multiple different pagesizes are used.
> This is more likely to happen on a database server with some application
> work load (concurrent managers) for example. Let say there are two nodes in
> cluster, one where the database instance runs and other is where Apps
> concurrent managers run. Now when the db instance is failed over to the
> concurrent manager node (which has been up for a while), Oracle may not be
> able to allocate enough large pages and allocates the rest of SGA memory in
> small pages. Luckily we don't have to guess this - pmap -xs since Solaris 9
> will show exactly what pagesizes are used for memory segments. Also there's
> a kernel_cage_enable parameter which makes kernel not use memory across all
> physical RAM for itself..
>
> Read through this doc for more:
> http://www.solarisinternals.com/wiki/index.php/Multiple_Page_Size_Support
>
> --
> Regards,
> Tanel Poder
> http://blog.tanelpoder.com
>
>  ------------------------------
> *From:* oracle-l-bounce@xxxxxxxxxxxxx [mailto:
> oracle-l-bounce@xxxxxxxxxxxxx] *On Behalf Of *LS Cheng
> *Sent:* 08 May 2009 12:34
> *To:* oracle-l@xxxxxxxxxxxxx
> *Subject:* Large SGA in Solaris
>
> Hi
>
> I wonder if there anything to be considered to set a SGA of 50GB+ in
> Solaris 10?
>
> Since Oracle on Solaris 10 uses NUMA settings by default (several memory
> segments) I am not sure if we have to do any specific OS parameter tuning.
> Also the pagesize by default is 8192 bytes, with this sort of SGA size
> tracking pagesize can have quite an overhead.
>
>
> Thanks
>
> --
> LSC
>
>


-- 
Charles Schultz

Other related posts: