Re: Hugepages question with multiple instances on 1 host

  • From: Nuno Souto <dbvision@xxxxxxxxxxxx>
  • To: oracle-l@xxxxxxxxxxxxx
  • Date: Wed, 01 May 2013 22:23:36 +1000

That large page shared memory is locked in memory is a given.   It 
happens in ALL implementations of largepages and Oracle use of those.  
Be that Solaris, Aix, Linux or whatever.
As to the advantages, they are obvious and have been obvious for many 
years now, even though for a long time a lot of folks doubted them.

I thought the question originally was:
"can one instance use normal pages and another largepages in the same 
In Aix, it's simple.  I take it that using the given somewhat 
undocumented parameter, it's also simple in Linux.

By the looks of it, in Solaris it's now so automatic that it's not 
possible to control it, unless we use a completely undocumented parameter.
That is certainly a change from the previous attitude of "use largepages 
at your own risk" of a few years ago, with the consequent "misterious 
aspect" that "only a few illuminated could understand".

Good to see that the last millenium has finally arrived in Solaris 
land!  It's only been the case everywhere else for nearly a decade...    :)

Nuno Souto

On 30/04/2013 9:26 PM, Radoulov, Dimitre wrote:
> In the white paper: Best Practices for Running Oracle Databases in
> Oracle Solaris Containers
> (,
> Oracle states the following, regarding the _shared memory_:
> By default, an Oracle database instance uses intimate shared memory
> (ISM) instead of standard System V shared memory on Oracle Solaris.
> When a shared memory segment is made into an ISM segment, *it is mapped
> using large pages and the memory for the segment is locked
> (that is, it cannot be paged out)*. This greatly reduces the overhead
> due to process context switches, which improves the database's performance
> linearity under load.
> [...]
> [next DISM is discussed]
> I suppose the use of ISM could be disabled with the undocumented
> _use_ism = false.
> and I suppose that's not a good idea :)
> For other memory areas - heap, data - global parameters exist, see |
> use_text_pgsz4m, |||use_text_pgsz64k, |||||use_initdata_pgsz64k etc.|| |
> Default values and parameters vary across platforms, more details here:
>> Or does the Oracle executable have to be pre-configured with the wanted
>> size using ppgsz(1)?
> If I understand the documentation correctly - in most cases (including
> Oracle): no,
> the OS sets the pagesize automatically based on default values,
> supported page sizes
> and required memory usage.
>> Is 4M the default size?  And is there an option to say some instances
>> use larger page sizes, some don't?
> I don't know. It could be possible via a project in Solaris 10+,
> (me personally, I would leave the memory management to the OS).


Other related posts: