ITEM: F0488L

Need to change system kernal environments.


Question:

I am running 3.2.4 and I suspect that my system is suffering because
of variables set in the kernal environments - specifically semiphores
and shared memory. Running mulitple instances of oracle is giving me
problems.  I know that in other unix based systems that these
parameters are modifiable. Can someone tell me how to do this with
AIX?

Response:

They are running several instances of Oracle on his machine and was concerned 
about the available semaphores and shared memory segments.  On most *IX systems,
you edit /etc/master and set your own limits for IPC mechanisms (i.e. semaphores,
shared memory segments, message queues).  The only problem with this method is
that the higher you set the limits, the bigger the kernel gets and performance
can be affected.  AIX V3 uses a different method.

In AIX V3, upper limits are set for IPC mechanisms and the individual 
IPC types are dynamically allocated/deallocated up to these upper limits. 
Therefore, the kernel grows and shrinks in size as IPC types are allocated and
deallocated, so any performance hit is only for the life of the IPC type.

This difference in methods sometimes confuses users who are installing or 
using databases.  The bottom line is, you don't need to worry about it in 
AIX because IPC limits are taken care of for you.  The only limit that may
cause a problem is the max number of shared memory segments per process (10).

The IPC limits listed below (found in the AIX source code in
/afs/austin/aix/324/bos/prod/src/com/ipc/ipcspace.h)

\#define MSGMAX 65535            /* max message size                     */
\#define MSGMNB 65535            /* max number of bytes on a queue       */
\#define MSGMNI 4096             /* max number of message queue IDs.     */
                                /* Must be a power of 2                 */
\#define MSGMNM 8192             /* Maximium number of message per queue */

\#define SEMMNI 4096             /* max number of semaphoer IDs. Must be */
                                /* a power of 2                         */
\#define SEMMSL 65535            /* max number of semaphores per ID      */
\#define SEMOPM 1024             /* max number of operations per semop call
                                 * If you change this rember that semops
                                 * are copied onto the kernel stack in
                                 * the semop system call.  Making SEMOPM
                                 * too large will overflow the kernel stack
                                 */
\#define SEMUME 1024             /* max number of undo entries per proc  */
\#define SEMVMX 32767            /* semaphore maximum value              */
\#define SEMAEM 16384            /* adjust on exit max value             */

\#define SHMMAX SEGSIZE          /* max shared memory segment size       */
\#define SHMMIN 1                /* min shared memory segment size       */
\#define SHMMNI 4096             /* number of shared memory IDs. Must be */
                                /* a power of 2                         */


Support Line: Need to change system kernal environments. ITEM: F0488L
Dated: January 1994 Category: N/A
This HTML file was generated 99/06/24~13:30:52
Comments or suggestions? Contact us