Operating System - HP-UX
1824009 Members
4011 Online
109667 Solutions
New Discussion юеВ

SHMMAX kernel parameter & Oracle

 
Shahril M
Frequent Advisor

SHMMAX kernel parameter & Oracle

Hi folks,

I trust I am in the correct forum category, as most of the similar threads I searched for came from this one.

Anyway, I am running 64-bit 11.0 with 2GB physical RAM. Current value of SHMMAX is 0x77000000 (> 6GB).

Is there any potential risks if I leave the value as it is?

All replies appreciated.


Shahril
4 REPLIES 4
Michael Tully
Honored Contributor

Re: SHMMAX kernel parameter & Oracle

I don't a lot wrong with this but it may depend on a few other factors.

How much swap have got configured?
How is the system performing generally?
How big is the database?
How many users?
What is dbc_max_pct set as?
Anyone for a Mutiny ?
Hein van den Heuvel
Honored Contributor

Re: SHMMAX kernel parameter & Oracle

Not much risk, unless you have 'programmers' on the box, that might go create excessively large shared memory resources too easily.

No benefit either.

I would trim it down to something reasonable (pick a number between 400MB and 2000MB: Oracle will just allocated additional segments if it needs to) at your earliest convenience, but not reason to panic/reboot for this.

Hein.
Indira Aramandla
Honored Contributor

Re: SHMMAX kernel parameter & Oracle

Hi Shahril,

As you question said SHMMAX kernel parameter and Oracle, here is something in brief as to how SHMMAX parameter value effects oracle.

SHMMAX defines the maximum size of a single shared memory segment. The SHMMAX setting should be large enough to hold the entire SGA in one shared memory segment. A low setting can cause creation of multiple shared memory segments which may lead to performance degradation.

Oracle documents says the minimum required for 9i single instance on Solaris is 4Gb and on HP-UX 11.0 (64-bit) is Availmem. The maximum is limited by available physical memory and OS limits

Semaphores and shared memory are two very distinct sets of Operating System resources.

Semaphores are a system resource that Oracle utilizes for interprocess communication and they occupy a relatively small memory space, while shared memory is utilized to contain the SGA and can garner a large portion of physical memory.

SHARED MEMORY and how is shared memory allocated by the OS varies slightly depending on Unix platform, but the basic premise is this:

An application requests a given amount of contiguous shared memory from the OS. The OS dictates how large of a shared memory segment it will allow with the kernel parameter SHMMAX(Shared Memory Maximum). If the amount of shared memory requested by the application is greater than SHMMAX, the OS may be granted the shared memory in multiple segments. Ideally, however, you want the amount requested by the application to be less than SHMMAX so that the application's request can be fulfilled with one shared memory segment.

Since the SGA is comprised of shared memory, SHMMAX can potentially limit how large your SGA can be and/or prevent your instance from starting.

The following limits the size of SGA. In no particular order.
1. The amount of Physical Memory and Swap space available on your system.
2. The kernel paramater SHMMAX.
3. Other OS specific limitations on shared memory.

I hope this hleps to some extent.

Indira A
Never give up, Keep Trying
Steven E. Protter
Exalted Contributor

Re: SHMMAX kernel parameter & Oracle

Can be set dynamically.

The OS will ignore any setting in excess of 25% of memory. Memory is defined by HP-UX as RAM plus swap.

based on what you post I don't think changing SHMMAX will do any good at all.

Your system is in need of a full tune.

Attaching a data collection script that can help with that.

SEP
Steven E Protter
Owner of ISN Corporation
http://isnamerica.com
http://hpuxconsulting.com
Sponsor: http://hpux.ws
Twitter: http://twitter.com/hpuxlinux
Founder http://newdatacloud.com