Need help with SHMMAX and SHMALL parameters in Linux x86-64

Installation and support for Oracle DB on CentOS.
Post Reply
npolite
Posts: 29
Joined: 2007/11/30 03:35:01
Contact:

Need help with SHMMAX and SHMALL parameters in Linux x86-64

Post by npolite » 2009/10/12 15:48:39

Hi,

I've posted this on a dba group but thought to also post it here.

I've logged a Metalink ticket with an issue that we are seeing in 11.1.0.7 with a memory error ORA-04030: OUT OF PROCESS MEMORY WHEN TRYING TO ALLOCATE 82456 BYTES on occasion. This is preventing data loads and Oracle has come back asking to change the kernel.shmmax and kernel.shmall parameters. This is for CentOS 5 64-bit. They have told me to limit the shmmax parameter to 4294967295 and NOT to increase it any further. Against all of my objections that we have 24 GB of memory they do not want to change it. What I have a question about is the shmall parameter. Everything that I have been reading says to set this to shmmax/4096 (the page_size) which would leave it at 1048576. This isn't enough to startup the database which has a PGA and SGA sizes greater than 4GB. I get

ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device


Now Oracle has said to me that the shmall should be the sum of the SGAs divided by 4096. If I did this for our one database that has an SGA at 8.4GB this number would exceed the shmmax. This looks like it would be a problem, what does everyone else think?


Thanks,
Nick

pschaff
Retired Moderator
Posts: 18276
Joined: 2006/12/13 20:15:34
Location: Tidewater, Virginia, North America
Contact:

Re: Need help with SHMMAX and SHMALL parameters in Linux x86-64

Post by pschaff » 2009/10/12 19:19:56

Moved to "Oracle Installation and Support".

pjwelsh
Posts: 2632
Joined: 2007/01/07 02:18:02
Location: Central IL USA

Re: Need help with SHMMAX and SHMALL parameters in Linux x86-64

Post by pjwelsh » 2009/10/13 17:46:42

[quote]
npolite wrote:
...Everything that I have been reading says to set this to shmmax/4096 (the page_size) ...[/quote]
It's been a while with Oracle, but the should include the word *atleast* not imply equal IIRC... I recall a larger than Oracle states shmmax also. I do remember kernel.sem is too low by default..

yyagol
Posts: 1015
Joined: 2006/06/10 18:27:44
Location: 32 4′N 34 47′E
Contact:

Need help with SHMMAX and SHMALL parameters in Linux x86-64

Post by yyagol » 2009/10/14 06:39:56

Taken from Oracle metalink Doc ID:567506.1

[quote]Oracle Global Customer Support officially recommends a " maximum" for SHMMAX of just less than 4Gb, or 4294967295.

The maximum size of a shared memory segment is limited by the size of the available user address space. On 64-bit systems, this is a theoretical 2^64bytes. So the "theoretical limit" for SHMMAX is the amount of physical RAM that you have. However, to actually attempt to use such a value could potentially lead to a situation where no system memory is available for anything else. Therefore a more realistic "physical limit" for SHMMAX would probably be "physical RAM - 2Gb".

In an Oracle RDBMS application, this "physical limit" still leaves inadequate system memory for other necessary functions. Therefore, the common "Oracle maximum" for SHMMAX that you will often see is "1/2 of physical RAM". Many Oracle customers chose a higher fraction, at their discretion.

One last data point for 64-bit Linux systems: A SHMMAX value of 4Gb or greater will lead to coredump limitations. If a customer is willing to forfeit complete and successful core file generation under any and all circumstances, then a SHMMAX value of 4Gb or greater is fine. It is for this reason that Oracle Global Customer Support officially recommends a " maximum" for SHMMAX of just less than 4Gb, or 4294967295.[/quote]

Post Reply