IBM Support

Kernel parameter SHMMAX by default is too small on Linux Redhat

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

[{"Product":{"code":"SSGU8G","label":"Informix Servers"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"--","Platform":[{"code":"PF016","label":"Linux"}],"Version":"10.0;11.1;11.5;7.3;9.4;11.7","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
16 June 2018

UID

swg21204197