Troubleshooting
Problem
How to allocate a large memory space for Informix shared memory segments on Red Hat Linux 3 (RHEL3).
Resolving The Problem
PROBLEM
You are using IBM® Informix® Dynamic server (IDS) on on Red Hat Linux 3. When you try to allocate more that 1.8 GB (Gigabytes) of shared memory, the following error message appears in the message log file.
13:52:26 shmat: [ENOMEM][12]: out of available data space, check system
- memory parameters (e.g. MAXMEM).
SCOPE
The following products and operating systems are affected:
Product Name | Product Version(s) | Hardware Vendor | Operating System |
IBM® Informix® Dynamic Server™ | 10.00.UC3 | All | Red Hat Linux 3 |
CAUSE
The limitation of 1.8 GB is due to the placement of the IDS Shared Memory base address which by default is 0x44000000.
Important: This is only one possible cause of the problem. If this document does not provide you with a solution to your problem, you should search for other documents that refer to this topic.
SOLUTION
The layout of shared memory can be seen by running the following command (pid is the process id of the main CPU VP).
$ cat /proc/"pid"/maps
<deleted>
089f8000-08b7c000 rw-p 009b0000 08:02 655537 /usr3/products/10.0/bin/oninit
08b7c000-08bfe000 rw-p 00000000 00:00 0
0a01b000-0a03c000 rw-p 00000000 00:00 0
<Shared memory starts here>
44000000-45419000 rw-s 00000000 00:04 8519685 /SYSV52c44801 (deleted)
45419000-49419000 rw-s 00000000 00:04 8552455 /SYSV52c44802 (deleted)
49419000-494a0000 rw-s 00000000 00:04 8585224 /SYSV52c44803 (deleted)
<Shared memory ends here>
b75ea000-b75ed000 rw-p 00001000 00:00 0
bffbc000-c0000000 rwxp fffc0000 00:00 0
With the default SHMBASE, you can allocate a total shared memory allocation (RESIDENT + MESSAGE + VIRTUAL) of approximately 1.845GB
0xb75ea000 - 0x44000000 = 0x735EA000
= 1935581184
= 1,845 GB (approximately)
This can be seen from output of the onstat command:
$ onstat -g seg
IBM Informix Dynamic Server Version 10.00.UC3 -- On-Line -- Up 00:00:16 -- 1821120 Kbytes
Segment Summary:
id key addr size ovhd class blkused blkfree
8617989 1388595201 44000000 21073920 215476 R 5141 4
8650759 1388595202 45419000 1843200000 56904 V 3490 446510
8683528 1388595203 b31e9000 552960 672 M 135 0
Total: - - 1864826880 - - 8766 446514
(* segment locked in memory)
However, if the Shared Memory Base address is lowered down from 0x44000000 to 0x0b000000, you can allocate a total memory allocation of almost 2.8GB.
- 0xb75ea000 - 0x0b000000 = 0xAC5EA000
= 2891882496
= 2,757 GB (approximately)
Set:
- SHMBASE 0xB000000L
in your onconfig configuration file and increase shared memory parameters to utilise more memory.
$ onstat -g seg
IBM Informix Dynamic Server Version 10.00.UC3 -- On-Line -- Up 00:00:21 -- 2721120 Kbytes
Segment Summary:
id key addr size ovhd class blkused blkfree
8880133 1388595201 b000000 21073920 215476 R 5141 4
8912903 1388595202 c419000 2764800000 85024 V 3486 671514
8978441 1388595204 b10d1000 552960 672 M 135 0
Total: - - 2786426880 - - 8762 671518
(* segment locked in memory)
$ cat /proc/731/maps
<deleted?>
089f8000-08b7c000 rw-p 009b0000 08:02 655537 /usr3/products/10.0/bin/oninit
08b7c000-08bfe000 rw-p 00000000 00:00 0
08f32000-08f53000 rw-p 00000000 00:00 0
0b000000-0c419000 rw-s 00000000 00:04 10813445 /SYSV52c44801 (deleted)
0c419000-5ea75000 rw-s 00000000 00:04 10846215 /SYSV52c44802 (deleted)
5ea75000-b10d1000 rw-s 00000000 00:04 10878984 /SYSV52c44803 (deleted)
b10d1000-b1158000 rw-s 00000000 00:04 10911753 /SYSV52c44804 (deleted)
b75ea000-b75ed000 rw-p 00000000 00:00 0
bffbe000-c0000000 rwxp fffc0000 00:00 0
Note: The operating system has split the virtual memory segment into 2 equal sizes. This is because the virtual segment is greater than 2 GB and the operating system segment size has been limited to 2 GB:
$ ipcs -ma
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x52c44801 10813445 root 660 21073920 14
0x52c44802 10846215 root 660 1382400000 14
0x52c44803 10878984 root 660 1382400000 14
0x52c44804 10911753 root 666 552960 14
[{"Product":{"code":"SSGU8G","label":"Informix Servers"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Not Applicable","Platform":[{"code":"PF016","label":"Linux"}],"Version":"10.0","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]
Was this topic helpful?
Document Information
Modified date:
16 June 2018
UID
swg21215798