solidDB Help : Programming : Deploying SMA and LLA applications : Deploying SMA applications : Configuring your environment for SMA use : Modifying shared memory kernel parameters: Overview
  
Modifying shared memory kernel parameters: Overview
Shared memory is allocated in segments. The shared memory system parameters control the maximum size and number of segments that are allowed on your system.
Typically solidDB uses 32 MB segment sizes.
The shared memory parameters and their management mechanisms depend on the system. In Linux and UNIX environments, you might need to address the following kernel parameters.
Note The following topics discuss only the requirements that are set by solidDB. If you have other processes that run on the same system, you might require higher limit values.
Maximum size of a shared memory segment
As the solidDB segment size of 32 MB is considered to be small, typically, you do not need to modify the default system setting.
Maximum number of shared memory segments in a system/process
Because solidDB allocates most of the segments in 32 MB, you might need more segments than allowed by your system by default, especially if you have a large database.
The maximum number of shared memory segments must be at least the solidDB process size in MB divided by 32.
For example, for a process size of 1 GB (1024 MB), at least 32 segments are needed.
Use the following guidance:
Set the maximum number of segments to a significantly higher value than required by your database size. A higher value has no side effects.
solidDB uses only one process; if your environment requires you to set the maximum number of segments for a process and for the system separately, you can use the same value for both.
Maximum total size of all shared memory segments
The total combined size of all shared memory segments depends on the size of your database and availability of disk space.
In addition to this kernel parameter, the maximum total size of shared memory that is used by solidDB is controlled with the SharedMemoryAccess.MaxSharedMemorySize parameter, see SharedMemoryAccess section (server-side).
Use the following guidance:
The value that is set with the SharedMemoryAccess.MaxSharedMemorySize parameter takes precedence over the value that is set with the kernel parameter. Thus, the value that is set with the SharedMemoryAccess.MaxSharedMemorySize parameter must never be higher than the value that is set with the kernel parameter.
By default, solidDB is set to use the maximum size of the physical memory of the computer (SharedMemoryAccess.MaxSharedMemorySize=0). Thus, the default value that is set with the kernel parameter might be too low.
Examples:
If the system has 2 GB of memory and SharedMemoryAccess.MaxSharedMemorySize is set to 0, solidDB uses a maximum of 2 GB of memory. If the kernel parameter for the maximum total size of all shared memory segments is then set to 1 GB, solidDB runs out of memory when the 1 GB is reached.
If the system has 2 GB of memory and SharedMemoryAccess.MaxSharedMemorySize is set to 500M, solidDB never uses more than 500 MB of memory. As long as the kernel parameter for maximum total size of all shared memory segments is set to 500 MB or higher, solidDB never runs out of memory.
See
Modifying shared memory kernel parameters for SMA on AIX
Modifying shared memory kernel parameters for SMA on Linux
Modifying shared memory kernel parameters for SMA on Solaris
Go up to
Configuring your environment for SMA use