Adjusting the Operating System Shared Memory Parameters

Adjust shared memory segments if Adaptive Server cannot obtain large memory as a single segment, or if Backup Server stripes fail due to insufficient segments.

Depending on the number and types of devices used for backup (dump) and recovery (load), you may need to adjust the shared memory segment parameter in the operating system configuration file to accommodate concurrent Backup Server processes. There are six default shared memory segments available for process attachments.

If any reconfiguration through sp_configure requires additional memory, Adaptive Server allocates shared memory segments after start-up. To account for these additional segments, allocate the maximum memory available to Adaptive Server by using the allocate max shared memory configuration parameter. See the System Administration Guide.

  1. Adjust the operating system shared memory parameter.
    Solaris 10 has shifted to a new method of controlling system resources. For this reason shminfo_shmmax is technically obsolete. If you still have an entry for it in /etc/system it will work. However, the new method requires an additional entry to the file /etc/project. For example:
    project-sybase:200:For use by Sybase:sybase:sybase:
    project.max-shm-memory=\(privileged,17179869184,deny)

    The new parameter is project.max-shm-memory=(privileged,17179869184,deny) — replaces the old parameter shminfo-shmmax. "Privilege" is a threshold value on a resource control that constitutes a point at which local actions are triggered or global actions such as logging into a machine can occur.

    Privilege levels:
    • Basic – can be modified by the owner of the calling process.

    • Privilege – can be modified by privileged callers.

    • System – is fixed for the duration of the operating system instance.

    In specifying the threshold value of "privilege," you can use the abbreviation “priv” For example:
    project.max-shm-memory=(priv, 17179869184,deny)
    • "17179869184" – is the threshold value (16GB) on the resource control.

    • deny – denies attempts to use more than 16GB.

    The default value for project.max-shm-memory is 25% of the physical memory on the system. The maximum value is UINT64_MAX, which works out to 18446744073709551615 bytes, so is limited only by the size of the physical memory.

    To set the project.max-shm-memory while the system is running, use the prctl command; it sets the configuration permanently.

  2. If the installer cannot update for Solaris 10 patch ID 120012-14, edit your /etc/user_attr file with:
    sybase::::type=normal;project=project-sybase
    --------------------
    To confirm that the update to this patch, use either of these commands:
    # projects -d sybase
    project-sybase
    # id -p sybase
    uid=204409(sybase) gid=1(other) projid=200(project-sybase)
    This update allows changes to shared-memory parameters within Solaris 10.
  3. Adjust shared memory segments.

    Depending on the number and types of devices used for backup (dump) and recovery (load), you may need to adjust the shared memory segment parameter in the operating system configuration file to accommodate concurrent Backup Server processes. The default number of shared memory segments available for process attachments is 6.

    Adaptive Server may allocate shared memory segments after start-up if any reconfiguration through sp_configure requires additional memory. You may need to account for these additional segments. Allocate the maximum memory available to Adaptive Server, by using the allocate max shared memory configuration parameter. The default max memory size is 138MB. See the System Administration Guide for more information.

    To adjust shared memory segments of the operating system, add the following line to the configuration file where x is the number of shared memory segments./etc/system:
    set shmsys:shminfo_shmseg=x