Le 18/03/2018 à 19:23, Viktor Dukhovni a écrit :
On Mar 18, 2018, at 1:55 PM, Matus UHLAR - fantomas <uh...@fantomas.sk> wrote:
* Caching open TLS connections in the smtp(8) delivery agent for
reuse by scheduling repeated deliveries to the same delivery
agent runs into complex scheduling difficulties. The presence
of open connections don't, and should not IMHO alter scheduler
priority. Messages should still leave in approximately FIFO
order (subject to (n)qmgr's periodic preemption of messages that
split into many envelopes).
I believe routing multiple messages for the same destination through an
array of currently open connections (held by different processes) should
not be slower than opening new connection for each message.
This would be a rather non-trivial effort. And downstream MTAs
at major providers seem to frown on connection re-use these days.
is there an evidence about this?
While traffic to smaller destinations is typically less
performance-critical. So while having TLS connection caching
would be nice, it is not clear that it is a high priority given
the high cost and possibly only moderate benefit.
that is imho still the question. But I'm more curious about questions above
Sorry, no cycles to dissect this point by point. My view is as stated in
the previous message:
* I believe that support for this requires proxy processes to handle TLS
on behalf of (multiple) SMTP delivery agents. The connection cache
would then hold a connection to the proxy, rather than a connection to
the remote destination.
* The feature is attractive, but not urgently compelling. It is complex
to implement, so I cannot predict when work in that direction might begin.
Ok, this is for the connection reuse in the traditional postfix
sense.Some "opportunistic" reuse.
But would it be difficult to implement something for the case when the
connection reuse could be planned by the scheduler before submission to
the agents ?
The most problematic case (and the case for which we would gain a lot)
is when we cross by a factor the transport_destination_concurrency_limit
of mail waiting to be delivered to a destination in the mailq.
In this case, instead of pushing/notifying smtp one mail at time, could
the notifying scheme be extended to be able to push a list of mail to be
processed by one smtp agent ?
With purely static parameters (crossing factor and fixed queue length)
it could be a huge step forward for the most common case, even with low
queue length and could be later enhanced if wanted (dynamic or adaptive
queue length for example).
In my case, I already have transport_destination_concurrency_limit=1 for
the problematic destinations and many parallels servers with their own
public IP. At the scale of my country, the problematic destination is
like google or yahoo for the world. Without connection reuse for
lowering my tcp connexion rate, my servers are always throttled
(temporary blacklisted).
Now my only option would be to disable TLS for these domains, but my
client will put me on fire or more in that case |-)).
Is there any document that describe how interprocess notification is
done in postfix ? More precisely the scheduler -> delivery agent
notification ?
---
Emmanuel.