Question about default_destination_concurrency_limit

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Question about default_destination_concurrency_limit

J Doe
Hi,

I had a question regarding the main.cf parameter “default_destination_concurrency_limit”.  The man page (man 5 postconf), states it is: “The default maximal number of parallel deliveries to the same destination.” and that this applies to the smtp(8) delivery agent.

This got me wondering . . . how would one adjust this parameter ?  I am thinking it is only through benchmarking trial and error, as a number of factors would seem to affect this (server load, bandwidth, etc.).  But then I was thinking if it was through trial and error, how was the value of “20” determined when most people running Postfix will have varying equipment for their server ? [1]

Thanks,

- J

[1] I ask this as there a couple of other parameters in the main.cf config file that seem to fall into this category and I am wondering if there is a more efficient method of determining the values for my server or whether the solution is also through trial and error.
Reply | Threaded
Open this post in threaded view
|

Re: Question about default_destination_concurrency_limit

Viktor Dukhovni


> On Oct 29, 2017, at 9:40 PM, J Doe <[hidden email]> wrote:
>
> I had a question regarding the main.cf parameter “default_destination_concurrency_limit”.  The man page (man 5 postconf), states it is: “The default maximal number of parallel deliveries to the same destination.”

Correct.

> and that this applies to the smtp(8) delivery agent.

It states no such thing, and indeed this is not the case.

> This got me wondering . . . how would one adjust this parameter ?  I am thinking it is only
> through benchmarking trial and error, as a number of factors would seem to affect this
> (server load, bandwidth, etc.).  But then I was thinking if it was through trial and error,
> how was the value of “20” determined when most people running Postfix will have varying
> equipment for their server? [1]

This parameter much less about your server's capacity that it is about
not overwhelming remote servers with too many parallel connections.
It should, for a transport that handles deliveries to many destinations,
of course not consume the entire transport process limit, which as
specified with default_process_limit or the corresponding master.cf
entry.  The latter defaults to 100, so 20 is a reasonable fraction
that does not result in any single destination hogging all the
transport slots.

--
        Viktor.

Reply | Threaded
Open this post in threaded view
|

Re: Question about default_destination_concurrency_limit

J Doe
Hi Viktor,

On Oct 30, 2017, at 12:11 AM, Viktor Dukhovni <[hidden email]> wrote:

I had a question regarding the main.cf parameter “default_destination_concurrency_limit”.  The man page (man 5 postconf), states it is: “The default maximal number of parallel deliveries to the same destination.”

Correct.

and that this applies to the smtp(8) delivery agent.

It states no such thing, and indeed this is not the case.

Oh, perhaps I am mistaken.  When I look at that parameter using: http://www.postfix.org/postconf.5.html

...it states: “This is the default limit for delivery via the lmtp(8), pipe(8), smtp(8)and virtual(8) delivery agents.”

This got me wondering . . . how would one adjust this parameter ?  I am thinking it is only
through benchmarking trial and error, as a number of factors would seem to affect this
(server load, bandwidth, etc.).  But then I was thinking if it was through trial and error,
how was the value of “20” determined when most people running Postfix will have varying
equipment for their server? [1]

This parameter much less about your server's capacity that it is about
not overwhelming remote servers with too many parallel connections.
It should, for a transport that handles deliveries to many destinations,
of course not consume the entire transport process limit, which as
specified with default_process_limit or the corresponding master.cf
entry.  The latter defaults to 100, so 20 is a reasonable fraction
that does not result in any single destination hogging all the
transport slots.

Ah, I see.

Thanks for your reply,

- J
Reply | Threaded
Open this post in threaded view
|

Re: Question about default_destination_concurrency_limit

Viktor Dukhovni


> On Oct 30, 2017, at 12:37 AM, J Doe <[hidden email]> wrote:
>
>>> and that this applies to the smtp(8) delivery agent.
>>
>> It states no such thing, and indeed this is not the case.
>
> Oh, perhaps I am mistaken.  When I look at that parameter using: http://www.postfix.org/postconf.5.html
>
> ...it states: “This is the default limit for delivery via the lmtp(8), pipe(8), smtp(8)and virtual(8) delivery agents.”

The parameter applies to the qmgr(8) process which manages
the concurrency of all delivery agents, including smtp(8),
but it is not per-se an smtp(8) parameter.  In particular,
overrides of:

        default_destination_concurrency_limit
        smtp_destination_concurrency_limit
        relay_destination_concurrency_limit
        ...

have no effect when applied to some non-qmgr entry in master.cf,
but since there can only be at most one queue-manager process,
these always go in main.cf.  The "<transport>_" prefix matches
the first column in master, not the delivery agent executable.
Thus each instance of smtp(8) (smtp/unix, relay/unix, ...)
is controlled by a separate qmgr(8) override parameter.

--
        Viktor.