Troubleshooting
Problem
This document describes the effects of having a small SHMMAX setting and how to adjust it
Resolving The Problem
PROBLEM
Excessive Linux shared memory segment allocation leads to performance problems
CAUSE
The default value of the kernel parameter shmmax on RedHat Linux is usually too low (32Mb, 33554432 bytes).
As a consequence of this, an Informix instance that needs to allocate one shared memory segment of 320Mb , will actually use 10 Linux segments of 32Mb. This issue causes a performance problem due to excessive operation system shared memory allocation.
SOLUTION
To confirm that the SHMMAX is set to 32mb, run the command below as root:
- #/sbin/sysctl -a|grep shmmax
kernel.shmmax = 33554432
To dynamically increase SHMMAX run:
#/sbin/sysctl -w kernel.shmmax=2147483648
To confirm that SHMMAX is set to 2Gb run:
- #/sbin/sysctl -a|grep shmmax
kernel.shmmax = 2147483648
This new kernel setting will be lost if the machine reboots. To change it so that it takes effect every time the system reboots, edit the file /etc/sysctl.conf and add the following line:
kernel.shmmax = 2147483648
Was this topic helpful?
Document Information
Modified date:
16 June 2018
UID
swg21204197