Previous | Contents | Index |
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 |
# 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.
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).
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 |
ksh
command
# ulimit -a |
# sysconfig -q proc |
Previous | Next | Contents | Index |