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.
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.