On Sat, Aug 22, 2020 at 08:11:41AM -0700, Greg Sims wrote:

> I have looked at a number of maillogs where we receive the 'exceeded
> the maximum number of connections' error from the outlook servers.
> [...]
> I conclude that outlook is actually complaining about the number of
> connections that are in use at any point in time.

That's good to know.

> sender_dependent_default_transport_maps = randmap:{r235,r236,r237,r238}
> 
> selects transports at random for delivering email.  Is it possible to
> schedule a set of transports using a round-robin discipline? This
> transport scheduling strategy may avoid the random sequence above
> which caused outlook to complain.

To unconditionally avoid max connections per IP, ensure that each of the
IP-specific transports dedicated to outlook.com, hotmail.com, et. al.
have a transport *process limit* below the number that triggers the
limit, *and* avoid connection reuse, which can result in idle
connections in the connection cache adding to the live connection
count from active delivery agents.

Once no transport is capable of exceeding the limit, it won't matter
whether the scheduling is random or round-robin.

Given sufficiently high or variable message-delivery latency round-robin
can't help.  All the transports will be fully saturated at peak load,
with a backlog of messages in all their queues.  Or a batch of high
latency messages that happen to hit a particular transport will cause a
spike in its concurrency relative to the others, even with round-robin
selection.

So I wouldn't bother with working to implement round-robin, it is I
think a waste of time.  If not crossing the limit is important, make
sure you can't cross the limit regardless of the transport selection
order.

-- 
    Viktor.

Reply via email to