Re: Hugepages question with multiple instances on 1 host

From: Radoulov, Dimitre <cichomitiko_at_gmail.com>
Date: Tue, 30 Apr 2013 13:26:44 +0200
Message-ID: <517FAA74.9070506_at_gmail.com>



Hi Nuno,
On 30/04/2013 12:27, Nuno Souto wrote:
> I understand it is provided in Solaris. Question is: how automatic is
> it then?
> As in: all Oracle instances grab 4M pagesize for SGA?

In the white paper: Best Practices for Running Oracle Databases in Oracle Solaris Containers
(http://www.oracle.com/technetwork/server-storage/solaris10/solaris-oracle-db-wp-168019.pdf), 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: technopark02.blogspot.it/2006/01/large-page-support-for-instructions.html.

> 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).

I checked a few hosts here, different platforms use different values:

*M5000*

$ prtdiag |head -1
System Configuration: Sun Microsystems sun4u Sun SPARC Enterprise M5000 Server
$ pagesize -a
8192
65536
524288
4194304
33554432
268435456
$ pgrep -f smon | xargs pmap -sx | fgrep ism 0000000380000000 4194304 4194304 - 4194304 4M rwxsR [ ism shmid=0x2300001d ]
0000000480000000 16 16 - 16 8K rwxsR [ ism shmid=0x2300001d ]
0000000380000000 4194304 4194304 - 4194304 4M rwxsR [ ism shmid=0x2400004d ]
0000000480000000 16 16 - 16 8K rwxsR [ ism shmid=0x2400004d ]
0000000380000000 4194304 4194304 - 4194304 4M rwxsR [ ism shmid=0x2400003b ]
0000000480000000 16 16 - 16 8K rwxsR [ ism shmid=0x2400003b ]
20000000 32768 32768 - 32768 4M rwxsR [ ism shmid=0x22000044 ]
22000000 979968 979968 - 979968 8K rwxsR [ ism shmid=0x22000044 ]
5DD00000 4096 4096 - 4096 - rwxsR [ ism shmid=0x22000044 ]
5E100000 15360 15360 - 15360 8K rwxsR [ ism shmid=0x22000044 ]
5F000000 4096 4096 - 4096 4M rwxsR [ ism shmid=0x22000044 ]
20000000 36864 36864 - 36864 4M rwxsR [ ism shmid=0x7e00003e ]
22400000 417280 417280 - 417280 8K rwxsR [ ism shmid=0x7e00003e ]
3BB80000 512 512 - 512 - rwxsR [ ism shmid=0x7e00003e ]
3BC00000 233472 233472 - 233472 8K rwxsR [ ism shmid=0x7e00003e ]
4A000000 4096 4096 - 4096 4M rwxsR [ ism shmid=0x7e00003e ]
0000000380000000 4194304 4194304 - 4194304 4M rwxsR [ ism shmid=0x23000022 ]
0000000480000000 16 16 - 16 8K rwxsR [ ism shmid=0x23000022 ]
20000000 32768 32768 - 32768 4M rwxsR [ ism shmid=0xa000041 ]
22000000 484352 484352 - 484352 8K rwxsR [ ism shmid=0xa000041 ]
3F900000 1536 1536 - 1536 - rwxsR [ ism shmid=0xa000041 ]
3FA80000 136704 136704 - 136704 8K rwxsR [ ism shmid=0xa000041 ]
48000000 4096 4096 - 4096 4M rwxsR [ ism shmid=0xa000041 ]

*SPARC T4-4* $ prtdiag |head -1
System Configuration: Oracle Corporation sun4v SPARC T4-4 $ pagesize -a
8192
65536
4194304
268435456
2147483648
$ pgrep -f smon | xargs pmap -sx | fgrep ism 0000000380000000 4194304 4194304 - 4194304 -2G rwxsR [ ism shmid=0x5400007f ]
0000000480000000 16 16 - 16 8K rwxsR [ ism shmid=0x5400007f ]
0000000380000000 2097152 2097152 - 2097152 -2G rwxsR [ ism shmid=0x2b000063 ]
0000000400000000 1048576 1048576 - 1048576 256M rwxsR [ ism shmid=0x2b000063 ]
0000000440000000 8 8 - 8 8K rwxsR [ ism shmid=0x2b000063 ]
0000000380000000 2097152 2097152 - 2097152 -2G rwxsR [ ism shmid=0x35000041 ]
0000000400000000 1048576 1048576 - 1048576 256M rwxsR [ ism shmid=0x35000041 ]
0000000440000000 8 8 - 8 8K rwxsR [ ism shmid=0x35000041 ]

Regards
Dimitre

--
http://www.freelists.org/webpage/oracle-l
Received on Tue Apr 30 2013 - 13:26:44 CEST

Original text of this message