Topics

02 Things you need to know
Server
HP-UX - Shared memory increased

Prior to HP-UX 10.20, the maximum amount of shared memory available to an application was 1.75 GB. This limitation is a function of how HP-UX implements a process on (32-bit) PA-RISC architecture. Each process is allocated a virtual address space of 4 quadrants, each 1 GB in size for a total of 4 GB. A process is mapped onto these four quadrants so that text or code is placed in the first quadrant, global program data is placed in the second, with the third and fourth quadrants shared. One quarter or 0.25 GB of the fourth quadrant is used for I/O mapping. The size of the shared areas is 1.75 GB. Domino was also dependent on this limitation until release 5.0.9.

Under HP-UX 11.0, kernel changes where made so that an executable could be marked "SHMEM_MAGIC". Previous alternatives were "EXEC_MAGIC" for an executable with write-able code. By linking with the -N option, the data and text spaces of an process are combined into a single quadrant and the executable is marked as "EXEC_MAGIC". The kernel arranges so that the process marked "EXEC_MAGIC" can be changed via the HP-UX chatr utility to "SHMEM_MAGIC". A "SHMEM_MAGIC" executable can use the second quadrant as a shared area making available 2.75 GB of shared memory for applications.

Starting with Domino 5.0.9, the chatr(1) command may be used to change the Domino executables in the installed directory from EXEC_MAGIC to SHMEM_MAGIC and back. The chatr command may also be used to list the existing attributes of an executable indicating whether or not it is EXEC_MAGIC or SHMEM_MAGIC. Chatr works by setting bits in the executable that are interpreted by HP-UX.

To increase the amount of shared memory for Domino by 1 GB, (giving 2.7 GB per partition), change the directory to the installed location of the executables for Domino and, for each executable file, type the following:

%chatr -M filename

Do not use the chatr command with a wild card such as "chatr -M *" or your executables will be corrupted. An example would be as follows: " chatr -M server ".

CAVEAT: You cannot change this if you have API programs using 5.0.8.