2 Installing Eloquence on the HP-UX platform

Configuring the HP-UX system

After installing the Eloquence software, configuration of your HP-UX system is required:

Configure Kernel limits

Eloquence requires kernel resources such as files, locks, semaphores and shared memory segments. The HP-UX kernel can be configured to the requirements of the applications. This is done by tuning kernel parameters and building a new kernel with SAM.

Eloquence resource requirements depend on configuration and usage:

In order to estimate the required kernel resources, you should estimate the number of active users, the number of running eloqcore processes and the number of active data base sessions (probably the same as the number of eloqcore processes) and use the data provided above to calculate the total requirements for Eloquence.

The next step is to use those values to tune the kernel parameters. Please keep in mind that other processes use kernel resources as well, so be generous. Please refer to the HP-UX administration documentation for a complete reference and more information on kernel parameters.

Citing the SAM online documentation on kernel parameters:

Certain kernel operating parameters can be configured to fit specific system needs, resulting in better performance or more effective allocation of resources. The ideal value for each parameter is often determined by the system's particular hardware configuration, the specific mix of applications the system runs, and the trustworthiness of system users; factors that vary widely from system to system.

HP attempts to provide reasonable default parameter settings, but you may find it necessary or beneficial to modify these settings to better suit the needs of your particular system's users. Use the list below to obtain detailed information about each configurable kernel parameter.

WARNING: Changing kernel parameters to improper or inappropriate values or combinations of values can cause data loss, system panics, or other operating anomalies, depending on which parameters are set to what values. Before altering the value of any configurable kernel parameter, be sure you know the implications of making the change. Never set any system parameter to a value outside the allowable range for that parameter (SAM refuses to store values outside of the allowable range). Many parameters interact, and their values must be selected in a balanced way.

Note that individual parameters usually pertain to a specific subsystem; some are independent, but others are interrelated or interact with each other. The following subsections are grouped according to subsystem.

Configuring the number of processes

The nproc kernel parameter specifies the maximum total number of processes that can exist simultaneously in the system. When the total number of processes in the system is larger than nproc, the system issues these messages:

At the system console:

proc: table is full
Also, if a user tries to start a new process from a shell, the following message prints on their terminal:

no more processes

Configuring the number of user processes

The maxuprc kernel parameter specifies the maximum number of simultaneous processes available to each user on the system. The HP-UX default is 50 which should usually be sufficient. A user is identified by the user ID number, not by the login instances.

If a user attempts to start a new process that would cause the total number of processes for that user to exceed maxuprc, the system issues an error message to the user:

no more processes
The maxuprc should be much smaller than the nproc parameter, otherwise a single user could use up all system resources (for example due to a program failure).

Configuring the number of ptys (pseudo ttys)

The npty kernel parameter specifies the maximum number of pseudo-ttys available on the system. The default value for HP-UX is 60.

After rasing this value you also need to create the new pty slave and master side device files in the /dev/pty and /dev/ptym directories. This can be done with insf(1m). Please note, that for npty values above 60 you have to specify the -n argument to insf.

/sbin/insf -n 60 -d pty

Configuring the number of files

The nfile parameter specifies the maximum number of files that can be open simultaneously on the system at any given time. Be generous with this number because the required memory is minimal, and not having enough restricts system processing capacity.

The ninode parameter specifies the maximum number of open inodes that can be in memory. Each unique open file has an open inode associated with it. Therefore, the larger the number of unique open files, the larger ninode should be.

Also the maxfile_lim specifies the max. number of files that could be opened by a single process.

Configuring the number of locks

The nflocks parameter specifies the number of file locks that are available system-wide. The HP-UX default value is 200.

Each DATA file opened within eloqcore needs a lock for each process. So this value should be adapted to the anticipated usage. Each eloqcore process can currently open up to 20 DATA files concurrently.

Configuring the number of shared memory segments

The shmmni parameter specifies the maximum number of shared memory segments allowed to exist simultaneously, system-wide. The HP-UX default is 200 which should be sufficient unless you have a big number of active users.

Setting shmmni to an arbitrarily large number wastes memory and can degrade system performance. Setting the value too high on systems with small memory configuration may consume enough memory space that the system cannot boot. Select a value that is close to actual system requirements for optimum memory usage. A value not exceeding 1024 is recommended unless system requirements dictate otherwise.

The shmseg parameter specifies maximum number of shared memory segments that can be simultaneously attached to a single process. The HP-UX default is 12.

If using IPC transport for the eloqdb6 database server with separate shared memory segments (EnableIPC=1) the shmseg value should be adapted to the max. number of concurrent local processes accessing a single server.

Configuring the number of semaphore sets

The semmni parameter defines the maximum number of semaphore sets that can exist simultaneously on the system. The HP-UX default is 64.

If using IPC transport for the eloqdb5 and eloqdb6 servers, it may be necessry to adapt this value according to the anticipated max. number of concurrent local eloqcore processes which access the eloqdb5 or eloqdb6 server.

The semmap parameter specifies the size of the free-space resource map used for allocating new System V IPC semaphores. The HP-UX default is semmni+2.

If semaphore usage is heavy and a request for a semaphore set cannot be accommodated, the following message appears:

danger: mfree map overflow
You should then configure a new kernel with a larger value for semmap.

The semmns parameter specifies the system-wide maximum number of individual semaphores that can be allocated. The HP-UX default is 128 which should usually be sufficient.

The semmnu parameter defines the maximum number of processes that can have undo operations pending on semaphores. The HP-UX default is 30.

If using IPC transport for the eloqdb5 and eloqdb6 servers, it may be necessary to adapt this value according to the anticipated max. number of concurrent local eloqcore processes which access the eloqdb5 or eloqdb6 server. A semaphore undo entry is required for each process accessing the eloqdb5 or eloqdb6 servers with using the IPC transport.

The semume parameter defines the maximum number of semaphores that a given process can have undo operations pending on. The HP-UX default is 10.

An undo is a special, optional, flag in a semaphore operation which causes that operation to be undone if the process which invoked it terminates. semume specifies the maximum number of semaphores that any given process can have undos pending on.

If using IPC transport for the eloqdb5 and eloqdb6 servers, it may be necessary to adapt this value according to the anticipated max. number of concurrent local eloqcore processes which access the eloqdb5 or eloqdb6 server. A semaphore undo entry is required for each process accessing the eloqdb5 or eloqdb6 servers with using the IPC transport.

Configuration examples

The following configuration examples explain the kernel resourceswith some example configurations:

* semmni should be set to at least 224, semmap to semmni+2
The eloqdb6 server needs a sepahore set for each connection and another two semaphore sets for internal purposes for each eloqdb6 instance.

* semmns should be set to at least 230
The eloqdb6 server needs a sepaphore for each connection and in addition a few semaphores internally.

* semume should be set to at least 200
The eloqdb6 server uses a semaphore undo operation for each local connection. This should cover the largest eloqdb6 instance on the system.

* maxfiles_lim needs to set to at least 250
The eloqdb6 server opens a file (a socket) for each connection and in addition one for each volume file and log file.

* shmmni be set to at least 220, shmmap shmmni+2
Each eloqdb6 instance needs a separete shared memory segment for each connection.

* shmseg should be set to at least 200
The highest number of shared memory segments that can be attached to a single process. As eloqdb6 needs a separate shared memory segment per connection this should cover the largest eloqdb6 instance on the system.

* npty should be set to at least 100
eloq uses a separate pty for each eloqcore process.

* nfile should be set to at least 6000
Each eloqcore process may open up to 60 files.

* nflocks should be set to at least 2000
Each eloqcore may obtain up to 20 file locks.

Configure or verify service names and port numbers

You may want to verify the service names and port numbers added to your /etc/services file during installation are appropriate.

In your /etc/services file should be entries like below. Please make sure the specified port numbers are available on your system:

eloqsd    8100/tcp    # Eloquence A.06.00 eloqsd server
eloqdb    8102/tcp    # Eloquence A.06.00 eloqdb6 server
eloqdb5   8104/tcp    # Eloquence A.06.00 eloqdb5 server
runsrv    8010/tcp    # Eloquence RunSRV (Windows)
where the first column specifies the service name (eg. eloqsd) and the second column the associated port number and protocol (eg. 8100/tcp). The selected port numbers may not already be in use by another programs.

You may want to define the Eloquence specific service names in your /etc/services file (if you are using NIS it is probably required to do this on the NIS master server). This is optional, as you can specify the port number directly instead of a service name.

Install the license key

Add the supplied license keys to the /etc/opt/eloquence6/license file. We recommend that you comment out any existing license keys.

If a temporary license was created during installation this step may be skipped and the permanent license added later.

If the Personal Edition license should be used this step is not necessary as the PE license key is included in the default license template file.

The /opt/eloquence6/etc/chklic utility may be used to verify the license file.

Configure automatic startup/shutdown

The Eloquence server processes may be configured to start automatically by default if runlevel 2 is entered (after a reboot or single user mode) and shut down automatically on reboot.

The automatic server startup is configured in the Eloquence startup configuration file /etc/rc.config.d/eloquence6. Please refer to the next section for details

Create new users and groups for use with Eloquence

It is strongly recommended to run the eloqdb6 server and the eloqsd server with a dedicated user and group.


Eloquence Installation and Configuration - 29 OCT 2004