Unidata - To provide the data services, tools, and cyberinfrastructure leadership that advance Earth system science, enhance educational opportunities, and broaden participation. Unidata
         
  advanced  
 

Shared Memory Configuration

McIDAS-X 200x uses shared memory for a variety of tasks including frame allocation. By default, the shared memory facility is activated and should have sufficient maximum segment size on HP, IBM and SGI systems. However, this is not true for Sun systems running Solaris 2.x or Digital systems running True64. On Linux systems, the amount of available shared memory appears is equivalent to the combination of physical RAM and swap.

The system administrator should complete the steps below the first time McIDAS-X 200x is installed on Sun Solaris or Digital True64 workstations or if they desire to increase shared memory defaults on HP, IBM, or SGI systems.

Sun Solaris 2.X
SGI IRIX 6.x
HP HP-UX 10, 11
IBM AIX
Linux
FreeBSD 4.x
MacOS-X

Sun Solaris 2.x

The system administrator must complete the steps below the first time McIDAS-X is installed on a Sun workstation running Solaris 2. x .

    1. Force the kernel to activate the shared memory system at boot time by adding the line below to the appropriate location in the file
    /etc/system .

    
    forceload: sys/shmsys

    2. Check the maximum size of a shared memory segment using the command below. The value is indicated in bytes; the example lists a 512 MB maximum shared memory segment.

    If your value is less than 512 MB, go to step 3. If your value is 512 MB or greater, go to step 4.

    3. Set the shared memory size to 512 MB by adding the line below to the appropriate location in the file /etc/system .

    
    set shmsys:shminfo_shmmax = 536870912

    4. Reboot the system so the forceload entry and 512 MB maximum shared memory size take effect.

SGI IRIX 6.x

On Irix, SHMMAX defaults to 512 MB (0x20000000 bytes), so tuning this parameter is unlikely to be needed. SHMMAX is found in /var/sysgen/mtune/shm.

HP HP-UX 10, 11

On HP-UX 10 and 11, the maximum value for SHMMAX is 1024 MB (0x40000000; the default value for 64 MB (0x04000000). SHMMAX is found in /etc/conf/master.d/core-hpux.

The procedure for changing the parameter is similar, if not identical, to the one described for HP-UX 9.

One way to check the current value of SHMMAX is to enter the following command:

Type: grep SHMMAX /etc/master

If the grep does not print anything, you are using the default value of 64 MB. If the grep prints something, the output might look like this:


 shmmax          SHMMAX              0X20000000 

The value is bytes, so here the maximum segment size has been set to 512 MB.

IBM AIX

The shmget(2) man page says that the maximum shared-memory segment size is 256 MB (0x10000000); this limit does not appear to be tunable.

Linux

Linux
The system administrator must complete the steps below the first time McIDAS-X is installed on a Linux workstation.
  1. Edit the file /etc/sysctl.conf.
  2. Set the shared memory size to 512 MB by adding the two lines listed below to the end of the file.

    kernel.shmmax = 536870912
    kernel.shmall = 536870912
  3. Run the following command from the Unix prompt.

    Type:   ;/sbin/sysctl -p

Every time the machine reboots, the shared memory will be set to the value set above.

FreeBSD

Shared memory parameters are only read when the system goes from single user to multi user mode.

Add setting of shared memory max to /etc/sysctl.conf:

# $FreeBSD: src/etc/sysctl.conf,v 1.1.2.3 2002/04/15 00:44:13 dougb Exp $
#
#  This file is read when going to multi-user and its contents piped thru
#  ``sysctl'' to adjust kernel values.  ``man 5 sysctl.conf'' for details.
#
kern.ipc.shmmax=536870912

and then reboot.

MacOS-X

In the Panther and Tiger releases of MacOS-X, shared memory is set in the file /etc/rc. The default settings on Panther will look something like:

# System tuning
sysctl -w kern.maxvnodes=$(echo $(sysctl -n hw.physmem) '33554432 / 512 * 1024 +p'|dc)
sysctl -w kern.sysv.shmmax=4194304
sysctl -w kern.sysv.shmmin=1
sysctl -w kern.sysv.shmmni=32
sysctl -w kern.sysv.shmseg=8
sysctl -w kern.sysv.shmall=1024

We recommend changing this to:

# System tuning
sysctl -w kern.maxvnodes=$(echo $(sysctl -n hw.physmem) '33554432 / 512 * 1024 +p'|dc)
sysctl -w kern.sysv.shmmax=536870912
sysctl -w kern.sysv.shmmin=1
sysctl -w kern.sysv.shmmni=4096
sysctl -w kern.sysv.shmseg=4096
sysctl -w kern.sysv.shmall=131072

For the Tiger release of MacOS-X: As user 'root', create the file /etc/sysctl.conf and add the following lines:

kern.sysv.shmmax=536870912
kern.sysv.shmmin=1
kern.sysv.shmmni=128
kern.sysv.shmseg=32
kern.sysv.shmall=131072
Note the relationship between shmall and shmmax. shmall is the number of pages (4k in size). shmall*4096=shmmax.
This allows the full 512 MB of shared memory to be addressed.

After making these changes, the system will need to be rebooted for the changes to take effect.

 
 
  Contact Us     Site Map     Search     Terms and Conditions     Privacy Policy     Participation Policy
 
National Science Foundation (NSF) UCAR Office of Programs University Corporation for Atmospheric Research (UCAR)   Unidata is a member of the UCAR Office of Programs, is managed by the University Corporation for Atmospheric Research, and is sponsored by the National Science Foundation.
P.O. Box 3000     Boulder, CO 80307-3000 USA     Tel: 303-497-8643     Fax: 303-497-8690