PMDF System Manager's Guide


Previous Contents Index

11.8.2 System Parameters on Tru64 UNIX

Maximum threads per user

The default values of the Tru64 UNIX system kernel parameters such as max-proc-per-user and particularly max-threads-per-user can be rather low for a medium or large PMDF system. Note that PMDF jobs processing messages (running under the Job Controller) will normally all be running under pmdf account. Also note that PMDF includes many multithreaded components, such as the PMDF SMTP client, as well as the Dispatcher and servers running under it such as the SMTP, POP3, and IMAP servers. Thus you will want to allow enough processes per user, and enough threads per user, so that the pmdf account can execute the expected maximum number of PMDF processes and threads.

To determine the maximum number of threads that will be needed by PMDF, you will need to add up the number potentially used by the Job Controller plus the number potentially used by the Dispatcher services:
Total_threads = J_threads + D_threads
For the Job Controller, compute the number of queues that run outbound TCP/IP channel jobs times the JOB_LIMIT for each such queue times the MAX_CLIENT_THREADS channel option, plus the JOB_LIMIT for each other queue (that is, those running single threaded jobs), plus the sum of all the Job Controller's JOB_LIMIT values (as one thread is used by the Job Controller per job as overhead), plus a few more threads for general Job Controller management overhead:
Jthreads = Sumnon-TCP/IP queues (JOB_LIMIT+1) + SumTCP-IP queues (JOB_LIMIT*MAX_CLIENT_THREADS + 1) + a few

For the Dispatcher services, compute
Dthreads = 3 + Sumservices (2+NUM_PORTS + MAX_PROCS*(3+MAX_CONNS)) where ports = number of ports that the service listens on.

The current values of your system kernel parameters can be viewed via the command:


# sysconfigdb -l
or


# sysconfig -q proc

If the current values are not high enough for the sort of PMDF load you expect, you should increase the values using the sysconfigdb utility and then reboot your system so that the increases take effect.

Socket parameters

When permitting a large number of parallel incoming connections---that is when the sum over all services of MAX_PROCS*MAX_CONNS is high---it can be necessary to increase the somaxconn and sominconn socket parameters. These control the maximum number of pending connection attempts per server socket (the maximum depth of the listen() and SYN queues).

Heap size

The system's heap size (datasize) must be enough to accomodate the Dispatcher's thread stack usage. For each Dispatcher service compute STACKSIZE*MAX_CONNS, and then add up the values computed for each service. The system's heap size needs to be at least twice this number.

To display the heap size (i.e., default datasize), use the csh command


# limit
or the ksh command


# ulimit -a
or the utility


# sysconfig -q proc


Previous Next Contents Index