Florin Andrei:
> Correct me if I'm wrong, but that doesn't seem possible with Postfix. I 
> couldn't find any setting that says "cut off delivery after N messages".

That would actually make your problem worse. When one host is slower
than the other, and connections are closed after a fixed number of
deliveries, most connections would end up going on the slower host.

We ran into that problem with Postfix 2.2, and that is why there
is a reuse TIME limit instead of a reuse COUNT limit.

Below is a quote from Postfix RELEASE_NOTES-2.3 with the gory details.

        Wietse

[Feature 20051026] This snapshot addresses a performance stability
problem with remote SMTP servers. The problem is not specific to
Postfix: it can happen when any MTA sends large amounts of SMTP
email to a site that has multiple MX hosts. The insight that led
to the solution, as well as an initial implementation, are due to
Victor Duchovni.

The problem starts when one of a set of MX hosts becomes slower
than the rest.  Even though SMTP clients connect to fast and slow
MX hosts with equal probability, the slow MX host ends up with more
simultaneous inbound connections than the faster MX hosts, because
the slow MX host needs more time to serve each client request.

The slow MX host becomes a connection attractor.  If one MX host
becomes N times slower than the rest, it dominates mail delivery
latency unless there are more than N fast MX hosts to counter the
effect. And if the number of MX hosts is smaller than N, the mail
delivery latency becomes effectively that of the slowest MX host
divided by the total number of MX hosts.

The solution uses connection caching in a way that differs from
Postfix 2.2.  By limiting the amount of time during which a connection
can be used repeatedly (instead of limiting the number of deliveries
over that connection), Postfix not only restores fairness in the
distribution of simultaneous connections across a set of MX hosts,
it also favors deliveries over connections that perform well, which
is exactly what we want.

The smtp_connection_reuse_time_limit feature implements the connection
reuse time limit as discussed above.  It limits the amount of time
after which an SMTP connection is no longer stored into the connection
cache. The default limit, 300s, can result in a huge number of
deliveries over a single connection.

Reply via email to