System Administration
cancel
Showing results for 
Search instead for 
Did you mean: 

Is it Safe to increase SHMMAX Online on a busy System with lots of DB Instances? (HP-UX 11.11

 
SOLVED
Go to solution
Alzhy
Honored Contributor

Is it Safe to increase SHMMAX Online on a busy System with lots of DB Instances? (HP-UX 11.11

SHMMAX is a dynamic tunable.

But is it safe to increase it on a very large, very busy system with lots of large DB instances running? By lots I mean over a dozen. By large I mean a 256+GB system.

My DBA is bumping up one instance from an SGA of 31GB to 48GB. My SHMMAX right now is at 32GB.

TIA!
Hakuna Matata.
3 REPLIES
Hein van den Heuvel
Honored Contributor
Solution

Re: Is it Safe to increase SHMMAX Online on a busy System with lots of DB Instances? (HP-UX 11.11

Yes that's ok, but is is also likely to be irrelevant.

They only reason (IMHO) to set it large is to stop worrying about it.


If it is 32 GB and Oracle creates an SGA of 48 GB then Oracle will create 2 segments to map it. Big whoopie! Maybe 6 more instruction then 1 segments.

Of course the system better have the physical memory to hold that SGA without forcing swapping.

Oracle recommend just setting the SGA to equal physical memory to allow for a single segment no matter what, but it will create as many as needed.

I kinda like keeping it lower as a 'fools guard' against a test program going wild, but of course still keep large instances to a few segments and smaller instances to a single segment.

See:

http://download.oracle.com/docs/cd/B28359_01/server.111/b32009/appb_hpux.htm

" B.1 HP-UX Shared Memory Segments for an Oracle Instance

When an Oracle Database instance starts, it creates memory segments by dividing the shared memory allocated for creating the Oracle System Global Area (SGA) by the value of the HP-UX shmmax kernel parameter. For example, if 64 GB of shared memory is allocated for a single Oracle instance and the value of the shmmax parameter is 1 GB, then Oracle Database creates 64 shared memory segments for that instance.

Performance degradation can occur when an Oracle instance creates multiple shared memory segments. This is because each shared memory segment receives a unique protection key when Oracle Database creates the instance. The number of protection keys available depends on the system architecture as shown in the following table:"...
"Oracle recommends that you set the shmmax parameter value to the amount of available physical memory on the system. Doing this ensures that the entire shared memory for a single Oracle instance is assigned to one shared memory segment and the instance requires only one protection key."


Hth,
Hein.


Hein van den Heuvel
Honored Contributor

Re: Is it Safe to increase SHMMAX Online on a busy System with lots of DB Instances? (HP-UX 11.11

And just to be sure, wither the system is busy or idle, NOTHING happens other than changing one memory cell when you increase SHMMAX.

It is only when the instance with a large SGA is activated that the value from the cell will be used, and even so, whether it is high or low, the total amount of memory which will then be obtained will equal the requested SGA value. That's independent of the value of shmmax.
A larger value will just make it a tad more efficient.
So go for it, online, on-the-fly, busy or not and stop worrying about SHMMAX.

Do worry about starting that instance with th e big SGA and the amount of real memory available at that time!

Cheers,
Hein



Cheers,


Alzhy
Honored Contributor

Re: Is it Safe to increase SHMMAX Online on a busy System with lots of DB Instances? (HP-UX 11.11

Herr Hein,

Danke!

Very difficult to convince people at my shop even if the vendor or a docu says so.

BTW, Hein.. I had to raise SHMMAX as my DBA is complainig his new instance cannot start. We've max settings of SHMSEG and SMHMNI. I just recalled during my Solaris days of a similar edict -- to contain SGA in 1 SHM segment and I thought it's woth a try.

Lo and behold... it worked. DBA is happy.

Hakuna Matata.