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:- Semaphore and swap usage do not vary significantly with message rate or message persistence.
- 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.
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) |
- 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 |
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
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 -SaAmong the console output you see:
data(kbytes) 1048576 stack(kbytes) 8192If 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.