The SHMADD and EXTSHMADD configuration parameters and memory utilization

The SHMADD configuration parameter specifies the size of each increment of shared memory that the database server dynamically adds to the virtual portion. The EXTSHMADD configuration parameter specifies the size of a virtual-extension segment that is added when user-defined routines or DataBlade routines run in user-defined virtual processors. Trade-offs are involved in determining the size of an increment.

Adding shared memory uses CPU cycles. The larger each increment, the fewer increments are required, but less memory is available for other processes. Adding large increments is generally preferred; but when memory is heavily loaded (the scan rate or paging-out rate is high), smaller increments allow better sharing of memory resources among competing programs.

The range of values for SHMADD is 1024 through 4294967296 KB for a 64-bit operating system and 1024 through 524288 KB for a 32-bit operating system. The following table contains recommendations for setting SHMADD according to the size of physical memory.

Memory Size SHMADD Value
256 MB or less 8192 KB (the default)
257 - 512 MB 16,384 KB
Larger than 512 MB 32,768 KB

The range of values for EXTSHMADD is the same as the range of values of SHMADD.

Note: A shared memory segment can be as large as 4 terabytes, depending on platform limits and the value of the SHMMAX kernel parameter. Use the onstat -g seg command to display the number of shared-memory segments that the database server is currently using.

Copyright© 2019 HCL Technologies Limited