Message Dequeue

There are four parameters that are related and interact together to tell job_controller the number of processes that are responsible for delivery of messages.

job_limit -- this is the maximum number of processes that can run in a given pool simulataneously. I am not aware of any method to view the number of processes in pool A versus pool B. To view all smtp client processes use the following 'ps -aef | grep tcp_smtp_client'

maxjobs -- this is a channel keyword. You can apply this parameter to each channel to set the maximum number of processes (tcp_smtp_client) that job_controller will start to process messages in this chanel.

MAX_CLIENT_THREADS -- the default value is 10, this option is set in tcp_CHANNEL_NAME_option though these files are not present by default. This option controls the number of threads per process.

threaddepth -- maximum number of messages per thread. To view the number of threads that a tcp_smtp_client process is currently using you can use the command top. The default value is 128. This only applies to multithreaded channels. Channels like reprocess and conversion are single threaded.

Adjustments to these parameters should be slow and gradual until you find the right combination for your environment.

If you need to decrease the amount of time it takes for delivery of messages from your MTA then you should adjust the parameters above.

Here is an example. I wanted the MTA to relay very quickly. The server had available resources and thus increasing the number of tcp_smtp_clients was possible. I set threaddepth to 32, max_client_threads to 30, maxjobs to 60, and job_limit was set to 100. Two channels were sharing the same pool, the other had maxjobs set to 40. The goal was to relay mail as fast as possible. The system was not under heavy load.

openbsd secure by default, do you trust your OS?