Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Mailing Lists -> Oracle-L -> RE: [Oracle-L][Long...] SHMMNI choice affect SHMMAX choice?

RE: [Oracle-L][Long...] SHMMNI choice affect SHMMAX choice?

From: Lawie, Duncan <>
Date: Wed, 20 Dec 2006 11:34:39 -0500
Message-ID: <>

You can certainly have more than one memory segment for your SGA, in Linux at least. However, fragmenting was bad in traditional Unix - Ive not tested the performance impact for Linux.

From: [] On Behalf Of Sent: 20 December 2006 13:10
To:; Subject: RE: [Oracle-L][Long...] SHMMNI choice affect SHMMAX choice?

I believe shmmax is contiguous memory. Ie The SGA has to be contiguous. if shmmax is 2gbs, you could have a database with 1GB SGA, or one with 2GBs, but not one with 3Gbs.

Joel Patterson
Database Administrator
904 727-2546

From: [] On Behalf Of Peter Smith Sent: Tuesday, December 19, 2006 4:44 PM To:
Subject: [Oracle-L][Long...] SHMMNI choice affect SHMMAX choice?  


I've been asked to document how a DBA should set values of some Linux kernel parameters.

This is an easy task since it is a topic covered in the Oracle installation documents.

While writing my document, my curiosity triggered some simple questions.

What is the purpose of SHMMNI?

If I set SHMMNI to a larger value,
can I lower SHMMAX to a value to support a given SGA?  

I found this description of SHMMNI via google:

SHMMNI sets the maximum number of shared memory segments which can be allocated at any one time.

The above description suggests that I can carve up my shared memory allocation into a bunch of smaller pieces and I would be able to have SHMMAX be a smaller number as I increase the value of SHMMNI.

Is this a correct understanding?

The Oracle docs suggest a SHMMNI starting value of 4096.

If I want an SGA sized at 2GB,
and if I have a Linux box with 3GB total RAM and 2GB RAM available for the SGA, and if I have SHMMNI set to 4096,
can I theoretically have SHMMAX set to a small value like (2 * 1024 * 1024 * 1024 ) / 4096 = 524288 ??

By the way here is the document I wrote up which discusses some kernel parameters.

I'd welcome any comments (even if they are mean!) from DBA/SysAdmins out there.

Please access the attached hyperlink for an important electronic communications disclaimer:

Received on Wed Dec 20 2006 - 10:34:39 CST

Original text of this message