Configuring UNIX shared memory

On UNIX™, you can configure shared-memory segments for the database server.

About this task

On UNIX, perform the following steps to configure the shared-memory segments that your database server configuration needs. For information about how to set parameters related to shared memory, see the configuration instructions for your operating system.

Procedure

To configure shared-memory segments for the database server:

  1. If your operating system does not have a size limit for shared-memory segments, take the following actions:
    1. Set the operating-system configuration parameter for maximum segment size, typically SHMMAX or SHMSIZE, to the total size that your database server configuration requires. This size includes the amount of memory that is required to start your database server instance and the amount of shared memory that you allocate for dynamic growth of the virtual portion.
    2. Set the operating-system configuration parameter for the maximum number of segments, typically SHMMNI, to at least 1 per instance of the database server.
  2. If your operating system has a segment-size limit, take the following actions:
    1. Set the operating-system configuration parameter for the maximum segment size, typically SHMMAX or SHMSIZE, to the largest value that your system allows.
    2. Use the following formula to calculate the number of segments for your instance of the database server. If there is a remainder, round up to the nearest integer.
      SHMMNI = total_shmem_size / SHMMAX
      total_shmem_size
      is the total amount of shared memory that you allocate for the database server use.
  3. Set the operating-system configuration parameter for the maximum number of segments, typically SHMMNI, to a value that yields the total amount of shared memory for the database server when multiplied by SHMMAX or SHMSIZE. If your computer is dedicated to a single instance of the database server, that total can be up to 90 percent of the size of virtual memory (physical memory plus swap space).
  4. If your operating system uses the SHMSEG configuration parameter to indicate the maximum number of shared-memory segments that a process can attach, set this parameter to a value that is equal to or greater than the largest number of segments that you allocate for any instance of the database server.

Results

For additional tips on configuring shared memory in the operating system, see the machine notes file for UNIX or the release notes file for Windows™.