Configure and tuning the operating system on HP-UX

Before installing IBM MQ on an HP-UX system, you must check that the kernel is configured correctly.


Kernel configuration

It is possible that the default kernel configuration is not adequate because IBM MQ uses semaphores and shared memory.

Before installation, review the configuration of the machine and increase the values if necessary. Consider using the values of the tunable kernel parameters given in Table 1. These values might need to be increased if you obtain any First Failure Support Technology ( FFST ) records.

Note:
  1. Semaphore and swap usage do not vary significantly with message rate or message persistence.
  2. IBM MQ queue managers are independent of each other. Therefore system tunable kernel parameters, for example shmmni, semmni, semmns, and semmnu need to allow for the number of queue managers in the system.
See the HP-UX documentation for information about changing these values.
Table 1. Minimum tunable kernel parameters values
Name Value Increase Description
shmmax 268435456 No Maximum size of a shared-memory segment (bytes)
shmseg 1024 No Maximum number of shared memory segments per process
shmmni 1024 Yes Maximum number of shared memory segments
semaem 128 No Maximum undo value for a semaphore for a single process
semvmx 32767 No Maximum value of a semaphore
semmns 4096 Yes Maximum number of semaphores
semmni 128 Yes Maximum number of semaphore sets
semmnu 16384 Yes Maximum number of process having semaphore operations that can be undone
semume 32 No Maximum number of semaphore undo operations per process
max_thread_proc 66 No Maximum number of threads in a process
maxfiles 10000 No Maximum number of file handles per process (soft limit)
maxfiles_lim 10000 No Maximum number of file handles per process (hard limit)
Notes:

  • These values are sufficient to run two moderate sized queue managers on the system. If you intend to run more than two queue managers, or the queue managers are to process a significant workload, you might need to increase the values displayed as Yes in the Increase column.
  • You must restart the system after you change any of the tunable kernel parameters.


System resource limits

We can set global limits for the size of process data segments and the size of process stack segments for the whole system. These limits are set by altering the tunable kernel parameters. The tunable kernel parameters are:
Parameter What it controls Consider minimum value
maxdsiz Maximum size of the data segment for 32-bit processes 1073741824
maxdsiz_64bit Maximum size of the data segment for 64-bit processes 1073741824
maxssiz Maximum size of the stack segment for 32-bit processes 8388608
maxssiz_64bit Maximum size of the stack segment for 64-bit processes 8388608
If other software on the same machine needs higher values, then the operation of IBM MQ is not adversely affected if those higher values are used.

For the full documentation for these parameters see the HP-UX product documentation.

To apply the settings to an HP-UX 11i system which has the System Administration Manager (SAM) utility, we can use SAM to achieve the following steps:

  • Select and alter the parameters
  • Process the new kernel
  • Apply the changes and restart the system
Other releases of HP-UX might provide different facilities to set the tunable kernel parameters. Consult your HP-UX product documentation for the relevant information.


The ulimit shell command

On a per-shell basis, the available limits can be tuned down from the values stored for the System resource limits preceding parameters. Use the ulimit shell command to tune the values of the parameters with a combination of the following switches:
Switch Meaning
-H The hard limit
-S The soft limit
-d The data segments size
-s The stack segment size


Verifying that the kernel settings are applied

We can verify that the resource limits have not been lowered by a ulimit command and that the queue manager has the correct limits. To verify the limits, go to the shell from which the queue manager is started and enter the following command:
ulimit -Ha
ulimit -Sa
Among the console output you see:
data(kbytes)  1048576
stack(kbytes) 8192
If the lowered numbers are returned, then a ulimit command has been issued in the current shell to reduce the limits. Consult with your system administrator to resolve the issue.

We can check your system configuration using the mqconfig command.

For more information on configuring your system, see How to configure UNIX and Linux systems for IBM MQ.