Skip to main content
InterSystems IRIS Data Platform 2024.3
AskMe (beta)
Loading icon

Red Hat Linux Platform Notes

This topic includes the information on the following adjustments:

Shared Memory Limits

Depending on your version of Red Hat Enterprise Linux you may need to set kernel parameters related to shared memory.

RHEL 9

shmmax (maximum size shared memory segment) — The default for this parameter is sufficient.

shmall (maximum size of total shared memory system wide) — This should be set to 18446744073692774399 (in bytes).

RHEL 8

shmmax (maximum size shared memory segment) — This should be set to 18446744073692774399 (in bytes).

shmall (maximum size of total shared memory system wide) — This should be set to 18446744073692774399 (in bytes).

Changing the Kernel Parameters

You can change these parameters in the proc file system without a restart. The new memory limits remain in effect until you restart the Red Hat Linux system.

For example, type the following command:

$ echo 18446744073692774399 >/proc/sys/kernel/shmmax

You can put this command into a startup script.

Alternatively, you can use sysctl(8), if available, to set this parameter permanently. Add a line to the/etc/sysctl.conf similar to the following:

kernel.shmmax = 18446744073692774399

This file is usually processed at startup, but sysctl can also be called explicitly later.

For more information, reference Adjusting kernel parameters for database serversOpens in a new tab in the Red Hat Documentation.

msgmni

The msgmni parameter may also be set too low if you are running more than one instance of InterSystems IRIS on a machine. Set this value to three times the number of instances of InterSystems IRIS that run simultaneously on your system.

Other Parameters

Other parameters are sufficiently sized for an InterSystems IRIS application. To view the values of other parameters, look in the files /usr/src/linux/include/asm-xxx/shmparam.h and /usr/src/linux/include/linux/sem.h.

Locked-in Memory

On Linux platforms, if shared memory is allocated in huge pages, the pages are automatically locked in memory and no further action is required. See the Configuring Huge Pages on Linux section in this chapter for information about allocating huge pages.

If not using huge pages, you can configure InterSystems IRIS to lock the shared memory segment in memory to prevent paging. This is described in the LockSharedMemory section of the “memlock” entry in the Configuration Parameter File Reference.

Otherwise, you must increase the maximum size that may be locked into memory. View the current value using the ulimit command:

For example, to display all current limits:

bash$ ulimit -a 
core file size (blocks, -c) unlimited 
data seg size ( KBytes, -d) unlimited 
file size (blocks, -f) unlimited 
pending signals (-i) 1024 
max locked memory (KBytes, -l) 32 <---------- CHANGE TO unlimited 
max memory size (KBytes, -m) unlimited 
open files (-n) 1024 
pipe size (512 bytes, -p) 8 
POSIX message queues (bytes, -q) 819200 
stack size ( KBytes, -s) 10240 
cpu time (seconds, -t) unlimited 
max user processes (-u) 49000 
virtual memory ( KBytes, -v) unlimited 
file locks (-x) unlimited 

To display only max locked memory, use the -l option:

bash$ ulimit -l 
32 

Set max locked memory to unlimited. If you have privileges, you can alter the value directly using the ulimit command; however, it is better to update the memlock parameter in the /etc/security/limits.conf file. If the memlock limit is too low, Linux reports a ENOMEM - "Not enough memory" error, which does not make the cause obvious. The actual memory is allocated; it is the lock that fails.

For more information, see memlock in the Configuration Parameter File Reference.

Using Kerberos

To use Kerberos on the Red Hat Linux platform, you must install the krb5-devel package in addition to the krb5-libs package. Installing krb5-devel establishes the required symbolic links for using Kerberos. The package is required for production environments, not only development environments. See the Red Hat NetworkOpens in a new tab web site for more information about these components.

FeedbackOpens in a new tab